【发布时间】:2017-07-06 16:48:12
【问题描述】:
我正在使用 Selenium 使用 docker 映像:
require(RSelenium)
if (length(system("docker ps -l", intern = TRUE))<2)
try({system("docker run -d -p 4445:4444 selenium/standalone-firefox:2.53.0")})
它有效,我可以连接到任何 url 并导航。但是,当我单击按钮下载文件时,它有时会将其保存(部分保存为xxxxxxx.csv.part)到/tmp/mozilla_mozillaUser0,有时会保存到...无处,或者可能是我找不到的另一个位置...
有什么原因吗?
我也尝试使用
打开驱动程序makeFirefoxProfile(list(browser.download.dir = "D:/temp"))
但它返回一个奇怪的错误
Error in file(tmpfile, "rb") : cannot open the connection
In addition: Warning messages:
1: running command '"zip" -r9Xjq "C:\Users\rocks\AppData\Local\Temp\RtmpoPhjUb\file31076202d4f.zip" "C:\Users\rocks\AppData\Local\Temp\RtmpoPhjUb/firefoxprofile/prefs.js" ' had status 127
2: In file(tmpfile, "rb") :
cannot open file 'C:\Users\rocks\AppData\Local\Temp\RtmpoPhjUb\file31076202d4f.zip': No such file or directory
鉴于所有链接都在 Windows 中,但我的 selenium 在 docker 容器或 Ubuntu 中运行,我可以理解为什么这不起作用。
我的设置:R 在 Windows 上运行,我有一个 Ubuntu 的 docker 映像,其中包含 selenium 服务器。
编辑: 原来我的问题是因为主机上没有安装 firefox(理论上不需要)。
我通过使用(而不是调用makeFirefoxProfile)解决了这个问题:
fprof = structure(list(firefox_profile = "UEsDBBQAAAAIANJiVEobimJN8QAAABkCAAAIAAAAcHJlZnMuanOFkT9PwzAQxXckvkOUCSQnlliZkDqygcSITHyJTW3fyXdNIj49btqBoLTd7t57v/OfOzDkT8rQP9RfGafStRanFNDY1vpcq6rWDiNohnDM6t3Z5frx+f7uGt5jsJBfPUuZ8nQrHU0yQxHY4fThIL2JyeLTUNjeBIYLvINAkF+IuE0wlor3LZsR3nHneX+8fjwE8VSG6bn58aQMUfCdEY9J/+tPiabDWA5hBrs2LxmRJ8xrqeNRCcyyFD6Wl2lKQ3UuvwkGVf3Nk+1VtQBOYjihFIxPqlrlYO4grNExlc/jZsOZt8XIGzJ2AtKwZDBx2ewvUEsBAj8AFAAAAAgA0mJUShuKYk3xAAAAGQIAAAgAJAAAAAAAAAAgAAAAAAAAAHByZWZzLmpzCgAgAAAAAAABABgAzaOo9TCL0gHdkgMtLYvSAd2SAy0ti9IBUEsFBgAAAAABAAEAWgAAABcBAAAAAA=="), .Names = "firefox_profile")
remDr <- remoteDriver(extraCapabilities = ePrefs, port = 4445)
【问题讨论】:
标签: r selenium docker containers rselenium