我不能用R selenium 做任何事情。下面是第一步和我的输出:
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.
我错过了什么?
4条答案
按热度按时间ny6fqffe1#
当试图运行过时的
checkForServer()
时,Selenium提供了两个选项:请参阅:
Everybodyseemsto在rsDriver方面存在问题,建议使用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'")
。文档建议虚拟机有一些不同的东西,但我无法让它工作。这是我的代码:
更多信息请参阅文档:
gv8xihay2#
如果这仍然有用的话,我今天遇到了同样的问题,并且能够通过安装Java开发工具包(Java SE开发工具包11.0.1)来修复它。
我从我的电脑上收到了一个错误信息,以及这个问题中提到的相同的R错误,它修复了它。
对于一个可重复的例子,我能够复制这个tutorial。
sessionInfo()R版本3.4.4(2018年3月15日)平台:x86_64-apple-darwin 15.6.0(64位)运行于以下环境:macOS高塞拉利昂10.13.5
wn9m85ua3#
在使用RSelenium/rsDriver一段时间没有问题之后,我最近收到了一个与OP非常相似的错误信息,但是无法使用Docker来解决它(主要是出于组织原因)。
看一下function documentation,
rsDriver()
默认配置为启动装有最新版本Chrome * 和 * Firefox的Selenium服务器(Gecko)驱动程序,* 即使您已指定运行其他浏览器。* 在我的情况下,我指定browser = "firefox"
,但新的Chrome驱动程序已在最近一次运行时自动下载,无论出于什么原因,这才是问题的根源。这不是特别直观,而且
"Connection refused"
消息也没有真正的帮助,但遵循错误建议并检查服务器日志使我意识到Selenium仍在尝试加载Chrome驱动程序,即使我使用的是Firefox:无论如何,如果你指定
rsDriver()
运行一个旧的驱动程序版本,或者只是传入NULL
,这样它就不会寻找驱动程序,它可能会解决这个问题(它对我很有效)。如果您正在查找这些驱动程序在由RSelenium自动下载时保存到的文件路径(例如,您可能想查找旧驱动程序版本的名称),在Windows上,它应该是
~/AppData/Local/binman
。大声喊出this question上的响应,这也帮助我指出了正确的方向!
w9apscun4#
根据Cran的小插曲,我不得不运行:
shell (“对接机IP”)
然后将remoteServerAddr设置为返回的IP。