MAC中的RSelenium

时间:2015-08-11 18:02:34

标签: r macos rselenium

我在OS X Yosemite(10.10.4)上使用R R 3.1.1。我最近安装了RSelenium,我不断收到未知错误。我使用的代码如下:

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

错误如下:

  

remDr $ open()的   [1]&#34;连接到远程服务器&#34;   RCurl调用中的未定义错误。   queryRD出错(paste0(serverURL,&#34; / session&#34;),&#34; POST&#34;,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

它安装了一些东西,但问题仍未解决。 我不知道还能做什么。

2 个答案:

答案 0 :(得分:2)

对于Mac来说这是一个安全问题。您需要从http://www.seleniumhq.org/download/下载独立的selenium服务器,将其放在与您尝试运行的脚本相同的目录中,然后运行它。您的安全设置可能会阻止此操作,因为它“未经过身份验证”,这意味着您必须转到安全设置并手动覆盖。在那之后,它会正常工作。

来源:

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

答案 1 :(得分: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 /目录中。请注意,没有&#34; startServer()&#34;声明或找到硒罐并运行它。如果直接运行Selenium服务器,它将打开端口4444,然后Phantom JS将无法在该端口上启动。使用命令&#34; lsof -i:4444&#34;在Mac终端窗口中查看端口4444上发生的情况。

完成所有这些操作后,操作仍然不能令人满意 - 我只能在获得旋转色轮之前执行少量RSelenium命令,并且必须转到终端窗口并发出&#34; kill PID&#34 ;命令再次控制R.我一直试图在整个地方设置延误,以防网站响应时间问题缓慢,但它没有任何区别。

祝你好运。