簡體   English   中英

如何使用 selenium / firefox / python 切換下載目錄?

[英]how to switch download directory using selenium / firefox / python?

我知道以前有人問過這個問題……但我嘗試了多種方法,出於某種原因,我從驅動程序下載的任何內容都會進入我的下載文件夾。

基本上我導航到一個網站並通過點擊下載鏈接下載一些東西,如下所示:

result.click()

這可以很好地下載文件。 但我想將其下載到特定目錄。 我嘗試使用這些方法來更改下載目錄:

driver = webdriver.Firefox()
profile = webdriver.FirefoxProfile()

driver.command_executor._commands["SET_CONTEXT"] = ("POST", "/session/$sessionId/moz/context")
driver.execute("SET_CONTEXT", {"context": "chrome"})
driver.execute_script("""
  Services.prefs.setBoolPref('browser.download.useDownloadDir', true);
  Services.prefs.setStringPref('browser.download.dir', arguments[0]);
  """, directory)

driver.execute("SET_CONTEXT", {"context": "content"})

profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.dir", directory)
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/x-gzip")

其中directory是我想要的位置。

這些都不起作用......誰能解釋為什么或告訴我如何實際實現這一目標?

謝謝

您正在使用默認配置文件初始化瀏覽器,因為您沒有將任何配置文件參數傳遞給webdriver.Firefox()

profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.dir", directory)
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/x-gzip")

driver = webdriver.Firefox(profile)

下面的選項,它對我來說很好用。

# set download options
download_path = DOWNLOADS_PATH

# 0 means to download to the desktop, 1 means to download to the default "Downloads" directory, 2 means to use the directory
firefox_options.set_preference("browser.download.folderList", 2)
firefox_options.set_preference("browser.download.dir", download_path)

截至 2021 年,對於新的selenium.webdriver.firefox.options.Options ,不推薦使用早期答案中使用的FirefoxProfile類:

from selenium.webdriver.firefox.options import Options

options = Options()
options.set_preference("browser.download.folderList", 2)
options.set_preference("browser.download.manager.showWhenStarting", False)
options.set_preference("browser.download.dir", "./downloads")
options.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/x-gzip")

driver = webdriver.Firefox(options=options)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM