RSelenium в MAC

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

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

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

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

Я попытался загрузить selenium-java-2.41.0 с официального сайта. Затем я помещаю файл в папку Library/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

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


person Miros    schedule 11.08.2015    source источник


Ответы (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

person kng229    schedule 07.01.2016

Не знаю, интересно ли вам, но я несколько дней бился над этим! Вот что работает для моей установки (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, прежде чем получу вращающееся цветовое колесо и должен буду перейти в окно терминала и выполнить команду «kill PID», чтобы снова получить контроль над R . Я пытался вставлять задержки повсюду на случай, если проблема заключается в медленном времени отклика веб-сайта, но это не имеет никакого значения.

Удачи.

person EventHorizon    schedule 27.10.2015
comment
Error in phantom() : PhantomJS binary not located. Я получаю эту ошибку, несмотря на то, что я скачал Phantom! - person Cyrus Mohammadian; 09.08.2016