简体   繁体   中英

RSelenium Couldn't connect to host rsDriver()

I am trying to scrape a website with RSelenium. However, I run into problems when I want to connect to the Selenium server.

Imagine I use the rsDriver() command to start a selenium server and browser:

rsDriver(browser = c('firefox'))

This is the output generated:

[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.

Alternatively I tried this command (found it in another thread on stackoverflow):

remDr <- remoteDriver(remoteServerAddr = "localhost" 
                      , port = 4444L
                      , browserName = "htmlunit"
)
remDr$open()

But it fails:

[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.

This is my 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   

I use Firefox version 51.0.1 (64-bit) on a macOS Sierra version 10.12.2.

Any help is greatly appreciated!

Check whether a Selenium Server is running. You can try running one automatically:

library(RSelenium)
library(wdman)
selServ <- wdman::selenium(verbose = FALSE)

You can then check the logs to see if there are any issues:

selServ$log()

Alternatively you can try running a Selenium Server manually:

library(RSelenium)
library(wdman)
selServ <- wdman::selenium(retcommand = TRUE, verbose = FALSE)

Then manually run the output from cat(selServ) in a terminal:

> 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

Thanks @jdharrison! I had a similar problem and was puzzled because yesterday RSelenium was still working fine, but today it would not start the browser anymore. Running:

library(wdman)
selServ <- wdman::selenium(verbose = FALSE)
selServ$log()

Showed me that the problem was caused by a corrupted jarfile that had downloaded overnight:

"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"

Automatically, the rsDriver() function in RSelenium uses the newest selenium-server-standalone jarfile. Everything worked normally again when I ran rsDriver with previous jarfile instead:

rD <- rsDriver(verbose = FALSE, version = "3.7.1")

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM