2017-02-15 5 views
1

Я пытаюсь очистить сайт с помощью RSelenium. Однако у меня возникают проблемы, когда я хочу подключиться к серверу Selenium.RSelenium Не удается подключиться к хосту rsDriver()

Imagine Я использую команду 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. 

В качестве альтернативы я попробовал эту команду (нашел его в другой нить на StackOverflow):

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 

Я использую Firefox версии 51.0.1 (64-разрядная версия) на MacOS Sierra версии 10.12.2.

Любая помощь очень ценится!

+1

Он сказал это дважды 'Пожалуйста, убедитесь, что работает сервер Selenium. 'Сервер Selenium работает на вашем компьютере? – GGamba

ответ

3

Проверьте, работает ли Сервер 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 
+0

Большое спасибо за вашу помощь. По какой-то причине ваше решение не срабатывало, однако я смог запустить его с альтернативным способом. –

+1

@ J.Doe Если решение не сработало, вы должны отправить вывод из журналов. Если бы вы смогли запустить его альтернативным способом, вы должны опубликовать его в качестве ответа для добавления будущих зрителей. – jdharrison

+0

Спасибо. @jdharrison, вы случайно не знаете, можно ли изменить путь к java.exe в Windows? По умолчанию c: \ windows \ system32 \ java.exe представляется устаревшим exe. (Я заменил его, и теперь он работает, т. Е.сервер начинается с скрипта, но изменение пути могло быть лучшим вариантом.) – lukeA

0

Спасибо @jdharrison! У меня была аналогичная проблема, и я был озадачен тем, что вчера RSelenium все еще работал нормально, но сегодня он больше не запускает браузер. Бег:

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

показал мне, что проблема была вызвана поврежденным jarfile, который скачал на ночи:

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

Автоматически функция rsDriver() в RSelenium использует новейший Селен-сервер автономного jarfile , Все снова работало нормально, когда я запускал rsDriver с предыдущим jarfile вместо:

rD <- rsDriver(verbose = FALSE, version = "3.7.1") 
Смежные вопросы