在RSelenium中指定下载文件夹

时间:2016-02-19 11:56:00

标签: r google-chrome rselenium

我正在使用900导航到包含下载文件按钮的网页。我使用RSelenium单击此按钮下载文件。但是,文件默认下载到我的文件夹'downloads'中,而我想将文件下载到我的工作目录中。我尝试在下面指定一个chrome配置文件,但这似乎没有完成这项工作:

RSelenium

该文件仍然在“downloads”文件夹下载,而不是我的工作目录。怎么解决这个问题?

3 个答案:

答案 0 :(得分:6)

解决方案涉及设置https://sites.google.com/a/chromium.org/chromedriver/capabilities处列出的相应chromeOptions。这是一个关于Windows 10盒子的例子:

library(RSelenium)
eCaps <- list(
  chromeOptions = 
    list(prefs = list(
      "profile.default_content_settings.popups" = 0L,
      "download.prompt_for_download" = FALSE,
      "download.default_directory" = "C:/temp/chromeDL"
    )
    )
)
rD <- rsDriver(extraCapabilities = eCaps)
remDr <- rD$client
remDr$navigate("http://www.colorado.edu/conflict/peace/download/")
firstzip <- remDr$findElement("xpath", "//a[contains(@href, 'zip')]")
firstzip$clickElement()
> list.files("C:/temp/chromeDL")
[1] "peace.zip"

答案 1 :(得分:2)

我一直在尝试替代方案,似乎@Bharath关于放弃摆弄prefs的第一个评论(似乎不可能这样做)而是将文件从默认下载文件夹移动到想要的文件夹是要走的路。使这个便携式解决方案的诀窍是找到默认下载目录 - 当然是it varies by oswhich you can get like so) - 你也需要to find the user's username

desired_dir <- "~/Desktop/cool_downloads" 
file_name <- "whatever_I_downloaded.zip"

# build path to chrome's default download directory
if (Sys.info()[["sysname"]]=="Linux") {
    default_dir <- file.path("home", Sys.info()[["user"]], "Downloads")
} else {
    default_dir <- file.path("", "Users", Sys.info()[["user"]], "Downloads")
}

# move the file to the desired directory
file.rename(file.path(default_dir, file_name), file.path(desired_dir, file_name))

答案 2 :(得分:0)

看看这种替代方式。 您的下载文件夹应该为空。

列出文件夹中的文件

down.list <-list.files(路径=“ E:/ Downloads /”,所有文件= T,递归= F)

将所有文件移动到特定文件夹

file.rename(from = paste0(“ E:/ Downloads /”,down.list),to = paste0(“ E:/ 1 / scrap /”,down.list))

有效!