不能执行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 )或R shell('docker pull selenium/standalone-firefox')
  • 通过运行命令行启动服务器: docker run -d -p 4445:4444 selenium/standalone-firefox或在R shell('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" 

该文件的更多信息: