不能执行rsDriver(连接被拒绝)
Rselenium是无法得到的。 这是第一步和我的输出:
library(RSelenium) rD <- rsDriver() # checking Selenium Server versions: # BEGIN: PREDOWNLOAD # BEGIN: DOWNLOAD # BEGIN: POSTDOWNLOAD # checking chromedriver versions: # BEGIN: PREDOWNLOAD # BEGIN: DOWNLOAD # BEGIN: POSTDOWNLOAD # checking geckodriver versions: # BEGIN: PREDOWNLOAD # BEGIN: DOWNLOAD # BEGIN: POSTDOWNLOAD # checking phantomjs versions: # BEGIN: PREDOWNLOAD # BEGIN: DOWNLOAD # BEGIN: POSTDOWNLOAD # [1] "Connecting to remote server" # Error in checkError(res) : # Undefined error in httr call. httr output: Failed to connect to localhost port 4567: Connection refused # In addition: Warning message: # In rsDriver() : Could not determine server status.
我错过了什么 ?
尝试运行弃用的checkForServer()
Selenium提供了两个选项:
- 使用rsDriver
- 使用Docker
看到:
RSelenium::checkForServer() # Error: checkForServer is now defunct. Users in future can find the function in # file.path(find.package("RSelenium"), "examples/serverUtils"). The # recommended way to run a selenium server is via Docker. Alternatively # see the RSelenium::rsDriver function.
每个人 似乎都与rsDriver有问题,而Docker是推荐的select,所以我们将走这条路:
- 安装docker
- 运行它,按要求重新启动计算机
- 通过在命令行运行拉图像:
docker pull selenium/standalone-firefox
(或chrome
而不是firefox
)或Rshell('docker pull selenium/standalone-firefox')
- 通过运行命令行启动服务器:
docker run -d -p 4445:4444 selenium/standalone-firefox
或在Rshell('docker run -d -p 4445:4444 selenium/standalone-firefox')
- 然后运行
remDr <- remoteDriver(remoteServerAddr = "localhost", port = 4445L, browserName = "firefox'")
。 文档build议与虚拟机不同的东西,但我不能得到它的工作。
有了这个我被设置了,这里是我的代码:
shell('docker run -d -p 4445:4444 selenium/standalone-firefox') remDr <- remoteDriver(remoteServerAddr = "localhost", port = 4445L, browserName = "firefox") remDr$open() remDr$navigate("http://www.google.com/ncr") remDr$getTitle() # [[1]] # [1] "Google"
该文件的更多信息: