我正在尝试将 RSelenium 与 Docker 一起使用,一切似乎都在工作,只是我看不到 firefox 浏览器。我认为我的代码中没有任何内容要求它是无头的,但情况必须如此。有没有办法让它像使用时一样可见RSelenium::startServer()?
我通过本文中的说明安装了 docker,https://www.raynergobran.com/2017/01/rselenium-mac-update/
我去了终端并输入:docker run -d -p 4445:4444 selenium/standalone-firefox没有问题。
我转到 R 并运行此代码:
library(RSelenium)
remDr <- remoteDriver(port=4445L, browserName = "firefox")
remDr$open()
remDr$getStatus()
remDr$navigate("https://www.google.com/")
remDr$getCurrentUrl()
Run Code Online (Sandbox Code Playgroud)
最后一个命令的输出符合预期:
[[1]]
[1] "https://www.google.com/"
Run Code Online (Sandbox Code Playgroud)
查看 之后的输出时remDr$open(),headless 设置为 false:
[1] "Connecting to remote server"
$`moz:profile`
[1] "/tmp/rust_mozprofile.EQnMfPLPKS4l"
$rotatable
[1] FALSE
$timeouts
$timeouts$implicit
[1] 0
$timeouts$pageLoad
[1] 300000
$timeouts$script
[1] 30000
$pageLoadStrategy
[1] "normal"
$`moz:headless`
[1] FALSE
$`moz:accessibilityChecks`
[1] FALSE
$acceptInsecureCerts
[1] FALSE
$browserVersion
[1] "58.0.2"
$platformVersion
[1] "4.9.60-linuxkit-aufs"
$`moz:processID`
[1] 741
$browserName
[1] "firefox"
$platformName
[1] "linux"
$`moz:webdriverClick`
[1] TRUE
$webdriver.remote.sessionid
[1] "bfa2d87a-67d3-4e5e-838b-e6894a90dd5c"
$id
[1] "bfa2d87a-67d3-4e5e-838b-e6894a90dd5c"
Run Code Online (Sandbox Code Playgroud)
同样,浏览器在我的屏幕上不可见,但我希望它是。
我正在运行 El Capitan 10.11.6。
感谢您的帮助。
我认为这个问题似乎与您对浏览器的期望有关。您正在 docker 容器内启动浏览器。docker 容器没有 UI,浏览器在容器实例内启动,而不是在启动调用的机器上
默认情况下selenium/standalone-firefox不允许查看浏览器。如果您需要查看浏览器,则需要使用selenium/standalone-firefox-debug图像。此映像5900在容器端口托管 VNC 。您将使用下面的方式运行它
docker run -d -p 4445:4444 -p 5900:5900 selenium/standalone-firefox-debug
Run Code Online (Sandbox Code Playgroud)
然后您将执行您的代码并127.0.0.1:5900使用 VNC 查看器进行连接。它将要求输入secret默认密码。
然后您将在该 VNC 中看到浏览器
以上是运行您有问题的代码的结果
| 归档时间: |
|
| 查看次数: |
1338 次 |
| 最近记录: |