簡體   English   中英

MAC中的RSelenium

[英]RSelenium in MAC

我在OS X Yosemite(10.10.4)上使用RR 3.1.1。 我最近安裝了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

它安裝了一些東西,但是問題仍然沒有解決。 我不知道該怎么辦。

對於Mac來說,這是一個安全問題。 您需要從http://www.seleniumhq.org/download/下載獨立的硒服務器,將其與要運行的腳本放在同一目錄中,然后再運行它。 您的安全設置可能會阻止這種情況,因為它是“未經身份驗證的”,這意味着您必須進入安全設置並手動覆蓋。 之后,它將正常工作。

資源:

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

我不知道您是否仍然有興趣,但是我為此奮斗了好幾天! 這是適用於我的安裝的工具(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

幻影位於usr / bin /目錄中。 請注意,沒有“ startServer()”語句,也沒有找到硒罐並運行它。 如果直接運行Selenium服務器,它將打開端口4444,然后Phantom JS將不會在該端口上啟動。 在Mac終端窗口中使用命令“ lsof -i:4444”,查看端口4444上正在發生什么。

完成所有這些操作后,操作仍然不令人滿意-在獲得旋轉的色輪之前,我只能執行少數RSelenium命令,並且必須轉到終端窗口並發出“ kill PID”命令以再次獲得R的控制權。 我嘗試過在所有地方延遲,以防網站響應時間變慢,但這沒有任何區別。

祝好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM