首页 > 解决方案 > 无法将 RSelenium 连接到 Selenium 服务器:“已超时”

问题描述

我对 Selenium 和 RSelenium 完全陌生。我安装了 Docker 并让它运行一个 Selenium 映像,但我一直坚持通过 RSelenium 包连接到它。

我尝试将许多不同的参数传递给 remoteDriver(),但是每当我尝试 $open() 驱动程序时,我都会收到以下错误:

remDr<-remoteDriver([IP], 4444, "chrome")
remDr$open()
[1] "Connecting to remote server"
Error in checkError(res) : Undefined error in httr call. httr output: Timeout was reached: [...] Connection timed out after 10005 milliseconds

我总是将浏览器设置为“chrome”。

通过在命令提示符下运行“docker container ls”,我知道我尝试连接的容器具有以下端口参数:4444/tcp、0.0.0.0:4444->4445/tcp。因此,我尝试将 4444 或 4445(带或不带 L)都传递给函数中的端口参数。

我想真正的问题是远程服务器地址。通过在命令提示符下运行“docker inspect CONTAINER_ID”,我得到了一个杂乱无章的特征列表,并从中提取了所有可以想象的 IP 地址的可能性。

该列表中有关 IP 的值得注意的段落是:

"NetworkSettings"
       "Gateway": [ActualIP1],
       "GlobalIPv6Address": "",
       "GlobalIPv6PrefixLen": 0,
       "IPAddress": [ActualIP2],
       "IPPrefixLen": 16,
       "IPv6Gateway": "",
       "Networks": {
           "bridge": {
               "Gateway": **[ActualIP1]**,
               "IPAddress": **[ActualIP2]**,
               "IPPrefixLen": 16,
               "IPv6Gateway": "",
               "GlobalIPv6Address": "",
               "GlobalIPv6PrefixLen": 0,

有了这个,我尝试将以下值传递给 remoteServerAddr 参数:“localhost”,只是将其留空(默认为 localhost)、“0.0.0.0”、ActualIP1 和 ActualIP2。

它永远不会起作用。例如,我在使用 0.0.0.0 时遇到了一个不同的错误,但我只是出于绝望才尝试过。我预计 ActualIP2 将是正确的设置,但事实并非如此——或者还有其他问题,我无法想象它是什么。

有人可以帮帮我吗?我在 Windows 10 上,使用 RStudio 1.3.1093。Selenium 在由 Docker Desktop 3.0.0 提供支持的容器上运行。

标签: rdockerseleniumrseleniumdocker-selenium

解决方案


推荐阅读