我在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
它安装了一些东西,但问题仍未解决。 我不知道还能做什么。
答案 0 :(得分:2)
对于Mac来说这是一个安全问题。您需要从http://www.seleniumhq.org/download/下载独立的selenium服务器,将其放在与您尝试运行的脚本相同的目录中,然后运行它。您的安全设置可能会阻止此操作,因为它“未经过身份验证”,这意味着您必须转到安全设置并手动覆盖。在那之后,它会正常工作。
来源:
答案 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.我一直试图在整个地方设置延误,以防网站响应时间问题缓慢,但它没有任何区别。
祝你好运。