2015-08-11 4 views
0

Я использую R R 3.1.1 на OS X Yosemite (10.10.4). Недавно я установил RSelenium, и я постоянно получаю неизвестную ошибку. Код, который я использую следующие:RSelenium в MAC

require(RSelenium) 
checkForServer() 
startServer() 
Sys.sleep(5) 
remDr <- remoteDriver() 
remDr$open() 

ошибка заключается в следующем:

remDr $ Открыть() [1] "Подключение к удаленному серверу" Неопределенная ошибка в RCurl вызова. Ошибка в queryRD (paste0 (ServerURL "/ сессии"), "POST", qdata = toJSON (serverOpts)):

Я попытался загружая селеном Java-2.41.0 с официального сайта. Затем я помещаю файл в библиотеку/Java/Extension. Затем я пробовал эту строку кода

system("java -jar ~/Library/Java/Extension/selenium-2.47-2.1/selenium-java-2.47.1.jar") 

Но это не сработало, и я продолжал получать ту же ошибку.

Затем я использовал терминал для установки пакета, как это:

sudo java -jar selenium-server-standalone-2.47.1.jar 

Он установлен, но что-то до сих пор проблема не решена. Я понятия не имею, что еще делать.

ответ

1

Я не знаю, если вы все еще заинтересованы, но я боролся с этим в течение многих дней! Вот то, что работает для моей установки (RSelenium 1.3.5, фантом для Mac OS X 2.0.0, R 3.2.2, OS X Yosemite 10.10.4):

library("RSelenium") 
message("Starting Phantom JS ...") 
pJS <- phantom() # starts PhantomJS in webdriver mode on port 4444 
Sys.sleep(5) # give binary time to run and open port 
eCap <- list(phantomjs.page.settings.userAgent 
    = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.71 Safari/537.36") 
remDr <- remoteDriver(browserName = "phantomjs", extraCapabilities = eCap) 
message("Opening headless browser session ...") 
remDr$open(silent=T) 
Sys.sleep(5) # give it a moment 

Phantom находится в USR/BIN/каталог. Обратите внимание, что нет инструкции «startServer()» или поиска банкомата селена и его запуска. Если вы запускаете сервер Selenium напрямую, он открывает порт 4444, а затем Phantom JS не запускается на этом порту. Используйте команду lsof -i: 4444 в окне терминала Mac, чтобы узнать, что происходит на порту 4444.

Выполнение всего этого, операция все еще не является удовлетворительной - я могу выполнить только несколько команд RSelenium до Я получаю вращающееся колесо цвета и должен перейти в окно терминала и выдать команду «убить PID», чтобы снова получить контроль над R. Я пробовал задерживаться повсюду, если проблема заключается в медленном времени отклика веб-сайта, но это не имеет никакого значения.

Удачи.

+0

'' Ошибка в фантоме(): PhantomJS двоичный не located.'' я получаю эту ошибку, несмотря на то, я ве загруженного Phantom! –

2

Это проблема безопасности для Mac. Вам необходимо загрузить автономный сервер selenium от http://www.seleniumhq.org/download/, поместить его в ту же директорию, что и скрипт, который вы пытаетесь запустить, а затем запустить. Параметры безопасности могут помешать этому, потому что он «не аутентифицирован», что означает, что вам придется перейти к настройкам безопасности и вручную переопределить. После этого все будет хорошо.

Источник:

http://www.computerworld.com/article/2971265/application-development/how-to-drive-a-web-browser-with-r-and-rselenium.html

Смежные вопросы