Rselenuim/Docker - 无法连接到 firefox 的远程服务器

Rselenuim/Docker - unable to connect to remote server for firefox

提问人:cephalopod 提问时间:11/17/2023 最后编辑:cephalopod 更新时间:11/17/2023 访问量:36

问:

我的 Rselenium 突然停了下来。我寻找答案,尝试了所有答案,但没有任何运气。然后我卸载了 docker 并重新安装,重新启动了我的机器等等。终于设法让一段代码工作,所以我知道我的机器没有坏。

对我有用的代码是:

library(RSelenium)

# Specify the port
port <- as.integer(4444L + rpois(lambda = 1000, 1))

# opens a new browser
cDrv3<- rsDriver(port = port,browser = "firefox",chromever = NULL, )

remDr <- cDrv3[["client"]]

remDr$navigate("https://www.google.com")
remDr$getTitle()
remDr$closeWindow()

但是,此代码过于繁琐,因为它每次都会下载浏览器并打开新的浏览器。这使得它缓慢且效率低下。

我想要的是使这段代码工作:

system("docker run -d -p 4445:4444 selenium/standalone-firefox:latest") # this part works.
remDr <<- remoteDriver(remoteServerAddr = "localhost",  browserName = "firefox", port = 4445)
remDr$open(silent = FALSE)

目前,当我运行时,出现以下错误:remDr$open(silent = FALSE)

remDr$open(silent = FALSE)
[1] "Connecting to remote server"
Error in checkError(res) : 
  Undefined error in httr call. httr output: Failed to connect to localhost port 5411 after 2260 ms: Couldn't connect to server

我已经尝试了所有的建议

Postgres Docker - 无法从远程服务器连接

无法执行 rsDriver(连接被拒绝)

R Rselenium“......无法连接到本地主机端口 4444:连接被拒绝”

RSelenium 在创建服务器时不工作

有什么新想法可以解决我的问题吗?

提前致谢。

r rselenium docker-selenium

评论

0赞 cephalopod 11/17/2023
因此,经过一整天的研究,问题似乎出在 Rselenium 内部。因此,解决方法是在 Python 中创建远程驱动程序,并使用 reticulate 将函数导入到现有的 r 代码中。
0赞 cephalopod 11/17/2023
想法的来源来自这里:stackoverflow.com/questions/76430355/......

答:

1赞 Ashby Thorpe 12/6/2023 #1

RSelenium 不适用于最新版本的 Selenium。也:

  1. 使用旧版本的 Selenium(例如)。您可能需要尝试才能找到 RSelenium 兼容的版本。docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.8.3
  2. 使用较新的 selenium 包,该包适用于最新版本的 Selenium。