RSelenium无法连接到主机rsDriver()
我想用RSelenium刮一个网站。但是,当我想连接到Selenium服务器时遇到问题。RSelenium无法连接到主机rsDriver()
可以想象我使用rsDriver()命令启动硒服务器和浏览器:
rsDriver(browser = c('firefox'))
这是产生的输出:
[1] "Connecting to remote server"
Fehler in checkError(res) :
Couldnt connect to host on http://localhost:4567/wd/hub.
Please ensure a Selenium server is running.
Zusätzlich: Warnmeldung:
In rsDriver(browser = c("firefox")) : Could not determine server status.
备选地我试图此命令(发现它在另一线程在计算器上):
remDr <- remoteDriver(remoteServerAddr = "localhost"
, port = 4444L
, browserName = "htmlunit"
)
remDr$open()
但它失败:
[1] "Connecting to remote server"
Fehler in checkError(res) :
Couldnt connect to host on http://localhost:4444/wd/hub.
Please ensure a Selenium server is running.
这是我sessioninfo:
R version 3.3.2 (2016-10-31)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: macOS Sierra 10.12.2
locale:
[1] de_CH.UTF-8/de_CH.UTF-8/de_CH.UTF-8/C/de_CH.UTF-8/de_CH.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] seleniumPipes_0.3.7 whisker_0.3-2 magrittr_1.5 xml2_1.1.1 jsonlite_1.2 httr_1.2.1
[7] RSelenium_1.7.1 wdman_0.2.2
loaded via a namespace (and not attached):
[1] Rcpp_0.12.9 XML_3.98-1.5 binman_0.1.0 assertthat_0.1 bitops_1.0-6 rappdirs_0.3.1 R6_2.2.0
[8] semver_0.2.0 curl_2.3 subprocess_0.8.0 tools_3.3.2 yaml_2.1.14 caTools_1.17.1 openssl_0.9.6
我在塞拉利昂的MacOS版本10.12.2使用Firefox版本51.0.1(64位)。
任何帮助,非常感谢!
检查Selenium服务器是否正在运行。您可以尝试自动运行一个:
library(RSelenium)
library(wdman)
selServ <- wdman::selenium(verbose = FALSE)
然后,您可以检查日志,看看是否有任何问题:
selServ$log()
另外,您可以尝试手动运行Selenium服务器:
library(RSelenium)
library(wdman)
selServ <- wdman::selenium(retcommand = TRUE, verbose = FALSE)
然后在终端上手动运行cat(selServ)
的输出:
> cat(selServ)
/usr/bin/java -Dwebdriver.chrome.driver='/Users/admin/Library/Application Support/binman_chromedriver/mac64/2.27/chromedriver' -Dwebdriver.gecko.driver='/Users/admin/Library/Application Support/binman_geckodriver/macos/0.14.0/geckodriver' -Dphantomjs.binary.path='/Users/admin/Library/Application Support/binman_phantomjs/macosx/2.1.1/phantomjs-2.1.1-macosx/bin/phantomjs' -jar '/Users/admin/Library/Application Support/binman_seleniumserver/generic/3.0.1/selenium-server-standalone-3.0.1.jar' -port 4567
非常感谢您的帮助。您的解决方案由于某种原因无法正常工作,但是,我能够以其他方式运行它。 –
@ J.Doe如果解决方案不起作用,您应该从日志中发布输出。如果您能够以其他方式运行它,则应将其作为添加未来观众的答案发布。 – jdharrison
谢谢。 @jdharrison是否碰巧知道是否可以在Windows上更改java.exe的路径?默认的c:\ windows \ system32 \ java.exe似乎是一个过时的exe。 (我替换它,现在它可以工作,即服务器以脚本启动,但更改路径可能是更好的选择。) – lukeA
谢谢@jdharrison!我也遇到了类似的问题,因为昨天RSelenium仍然正常工作,但今天它不再启动浏览器。运行:
library(wdman)
selServ <- wdman::selenium(verbose = FALSE)
selServ$log()
给我看,这个问题是由一夜之间下载了一个损坏的jar文件造成的:
"Error: Invalid or corrupt jarfile C:\\Users\\user.name\\AppData\\Local\\binman\\binman_seleniumserver\\generic\\3.8.0/selenium-server-standalone-3.8.0.jar"
自动,在RSelenium的rsDriver()函数采用最新的硒服务器的独立jar文件。一切正常,当我运行rsDriver与以前的jarfile代替:
rD <- rsDriver(verbose = FALSE, version = "3.7.1")
它说了两次'请确保Selenium服务器正在运行。 'Selenium服务器是否在你的机器上运行? – GGamba