【发布时间】:2017-07-25 05:54:52
【问题描述】:
我正在尝试通过 Rselenium 下载文件,但看起来不可能。即使有一个简单的示例,我也无法下载:
1) 我已经安装了 docker 工具箱 (https://cran.r-project.org/web/packages/RSelenium/vignettes/RSelenium-docker.html)
2) 我运行了 firefox 独立映像:3.1.0,现在我正在测试旧的 2.52.0
3) 我已经在我的 R X64 3.3.2 上安装了 rselenium 包,并且我阅读了 stackoverflow 上的所有问题和答案
4) 我试过下面的代码,顺便说一下,当我分析 Firefox 选项 about:config 时,我没有找到“browser.download.dir”选项:
require(RSelenium)
fprof <- makeFirefoxProfile(list(browser.download.dir = "C:/temp"
, browser.download.folderList = 2L
, browser.download.manager.showWhenStarting = FALSE
, browser.helperApps.neverAsk.saveToDisk = "application/zip"))
remDr <- remoteDriver(browserName = "firefox",remoteServerAddr = "192.168.99.100",port = 4445L,extraCapabilities = fprof)
remDr$open(silent = TRUE)
remDr$navigate("https://www.chicagofed.org/applications/bhc/bhc-home")
# click year 2012
webElem <- remDr$findElement("name", "SelectedYear")
webElems <- webElem$findChildElements("css selector", "option")
webElems[[which(sapply(webElems, function(x){x$getElementText()}) == "2012" )]]$clickElement()
# click required quarter
webElem <- remDr$findElement("name", "SelectedQuarter")
Sys.sleep(1)
webElems <- webElem$findChildElements("css selector", "option")
webElems[[which(sapply(webElems, function(x){x$getElementText()}) == "4th Quarter" )]]$clickElement()
# click button
webElem <- remDr$findElement("id", "downloadDataFile")
webElem$clickElement()
6) 我没有错误但我没有文件
7) 最后,我想通过 Rselenium 下载此页面上的 excel 文件:
【问题讨论】:
-
下载目录将位于 docker 容器上,该容器是一个 linux 容器。然后,此位置将映射到主机上的适当目录(在您的情况下为 windows)
-
您将主机上的 C://test 映射到容器上的 /downloads。容器上没有文件夹 /downloads。在容器上映射到的适当文件夹是
/home/seluser/Downloads -
答案:docker exec -t -i containername /bin/bash link
-
/downloads在根目录下seluser是容器中运行firefox浏览器的用户可以访问吗? -
我设置了 browser.download.dir="/home/seluser/Downloads" 并且我使用的是 2.52.0 版本但仍然是空的:我快疯了
标签: r docker download rselenium