[英]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.