我对 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 提供支持的容器上运行。