问题:RSelenium 错误:无法连接到主机; Selenium 服务器未运行

我收到以下错误:“checkError(res) 中的错误:无法连接到http://localhost:4444/wd/hub上的主机。请确保 Selenium 服务器正在运行。”

我使用的是 Mac 版本 10.9.5,并下载了所有最新版本的包和 java。我的代码是:

library(rvest)
library(RSelenium)
library(wdman)
setwd(Path to selenium standalone file)
pJS <- phantomjs(pjs_cmd = "/phantomjs-2.1.1-macosx/bin/phantomjs")
remDr <- remoteDriver(browserName = "phantomjs")
Sys.sleep(5)
remDr$open(silent = FALSE)

然后我得到提到的错误。我尝试在终端中使用“java -jar selenium-server-standalone.jar”命令(在我们使用 cd 命令导航到正确的目录之后)。我尝试在 remoteDriver() 函数中更改我的端口(更改为 4444、5556)。我尝试了各种 Sys.sleep() 时间(最多 20 秒)。当我用谷歌搜索这个错误时,大多数修复都是针对 FireFox 或 Windows 的,不适用于使用 PhantomJS

我还能尝试什么?

解答

RSelenium::phantom函数已弃用。这有一个pjs_cmd论点,我认为您在上面提到过。您可以使用RSelenium中的rsDriver函数或wdman包中的phantomjs函数:

library(RSelenium)
rD <- rsDriver(browser = "phantomjs")
remDr <- rD[["client"]]
# no need for remDr$open a phantom browser is already initialised
remDr$navigate("http://www.google.com/ncr")
....
....
# clean up
rm(rD)
gc()

或者使用wdman

library(RSelenium)
library(wdman)
pDrv <- phantomjs(port = 4567L)
remDr <- remoteDriver(browserName = "phantomjs", port = 4567L)
remDr$open()
remDr$navigate("http://www.google.com/ncr")
...
...
# clean up
remDr$close()
pDrv$stop()
Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐