通过docker使用RSelenium时下载xls文件时出现问题
我一直在尝试从特定网站下载excel文件(.xls)。我将整个R代码粘贴到下面(在设置docker容器之后) 一切正常,但在最后一步(单击),selenium浏览器仍会打开通常的对话框窗口,询问我是否要保存或打开文件,即使我在代码的eprefs位中有覆盖命令 我已经手动下载了上次单击应直接下载的文件,并验证了内容类型是否正确通过docker使用RSelenium时下载xls文件时出现问题,r,excel,R,Excel,我一直在尝试从特定网站下载excel文件(.xls)。我将整个R代码粘贴到下面(在设置docker容器之后) 一切正常,但在最后一步(单击),selenium浏览器仍会打开通常的对话框窗口,询问我是否要保存或打开文件,即使我在代码的eprefs位中有覆盖命令 我已经手动下载了上次单击应直接下载的文件,并验证了内容类型是否正确 应用程序/vnd.ms-excel。我做错什么了吗?非常感谢您的帮助。服务器返回的mime类型是应用程序/force download。将此添加到您的列表中,并观察主机和容
应用程序/vnd.ms-excel。我做错什么了吗?非常感谢您的帮助。服务器返回的mime类型是
应用程序/force download
。将此添加到您的列表中,并观察主机和容器下载位置是否已映射,以下内容对我适用:
# initiate docker container mapping download locations
# here HOST is linux
# docker run -d -p 4445:4444 -p 5901:5900 -v /home/john/test:/home/seluser/Downloads selenium/standalone-firefox-debug:2.53.1
library(RSelenium)
ePrefs <- makeFirefoxProfile(
list(
browser.download.dir = "/home/seluser/Downloads",
"browser.download.folderList" = 2L,
"browser.download.manager.showWhenStarting" = FALSE,
"browser.helperApps.neverAsk.saveToDisk" = "application/vnd.ms-excel,
application/xls, application/x-xls, application/vnd-xls,
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,
application/force-download"
))
remDr <- remoteDriver(extraCapabilities = ePrefs, port = 4445)
remDr$open()
remDr$navigate("https://www.aeaweb.org/joe/listings?")
webelem1 <- remDr$findElement(using = 'id', "published-date")
webelem1$clickElement()
webelem2 <- remDr$findElement("css", "[value = 'week']")
webelem2$clickElement()
webelem3 <- remDr$findElement("css", "[value = 'Apply Filter']")
webelem3$clickElement()
Sys.sleep(10)
webelem4 <- remDr$findElement("css", "[feature = 'download']")
webelem4$clickElement()
webelem5 = remDr$findElement("xpath",
"/html/body/main/div/section/div/div[2]/div[2]/div/ul/li[3]/a")
webelem5$clickElement()
list.files("/home/john/test/")
> list.files("/home/john/test/")
[1] "joe_resultset.xls"
#启动docker容器映射下载位置
#这里的主机是linux
#docker run-d-p 4445:4444-p 5901:5900-v/home/john/test:/home/seluser/Downloads selenium/standalone firefox debug:2.53.1
图书馆(资源库)
ePrefs当您启动docker容器时,是否在主机和容器之间映射下载位置?看到和
# initiate docker container mapping download locations
# here HOST is linux
# docker run -d -p 4445:4444 -p 5901:5900 -v /home/john/test:/home/seluser/Downloads selenium/standalone-firefox-debug:2.53.1
library(RSelenium)
ePrefs <- makeFirefoxProfile(
list(
browser.download.dir = "/home/seluser/Downloads",
"browser.download.folderList" = 2L,
"browser.download.manager.showWhenStarting" = FALSE,
"browser.helperApps.neverAsk.saveToDisk" = "application/vnd.ms-excel,
application/xls, application/x-xls, application/vnd-xls,
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,
application/force-download"
))
remDr <- remoteDriver(extraCapabilities = ePrefs, port = 4445)
remDr$open()
remDr$navigate("https://www.aeaweb.org/joe/listings?")
webelem1 <- remDr$findElement(using = 'id', "published-date")
webelem1$clickElement()
webelem2 <- remDr$findElement("css", "[value = 'week']")
webelem2$clickElement()
webelem3 <- remDr$findElement("css", "[value = 'Apply Filter']")
webelem3$clickElement()
Sys.sleep(10)
webelem4 <- remDr$findElement("css", "[feature = 'download']")
webelem4$clickElement()
webelem5 = remDr$findElement("xpath",
"/html/body/main/div/section/div/div[2]/div[2]/div/ul/li[3]/a")
webelem5$clickElement()
list.files("/home/john/test/")
> list.files("/home/john/test/")
[1] "joe_resultset.xls"