通过docker使用RSelenium时下载xls文件时出现问题

通过docker使用RSelenium时下载xls文件时出现问题,r,excel,R,Excel,我一直在尝试从特定网站下载excel文件(.xls)。我将整个R代码粘贴到下面(在设置docker容器之后) 一切正常,但在最后一步(单击),selenium浏览器仍会打开通常的对话框窗口,询问我是否要保存或打开文件,即使我在代码的eprefs位中有覆盖命令 我已经手动下载了上次单击应直接下载的文件,并验证了内容类型是否正确 应用程序/vnd.ms-excel。我做错什么了吗?非常感谢您的帮助。服务器返回的mime类型是应用程序/force download。将此添加到您的列表中,并观察主机和容

我一直在尝试从特定网站下载excel文件(.xls)。我将整个R代码粘贴到下面(在设置docker容器之后)

一切正常,但在最后一步(单击),selenium浏览器仍会打开通常的对话框窗口,询问我是否要保存或打开文件,即使我在代码的eprefs位中有覆盖命令

我已经手动下载了上次单击应直接下载的文件,并验证了内容类型是否正确
应用程序/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"