Der*_*den 5 python firefox selenium
我知道以前有人问过这个问题……但我尝试了多种方法,出于某种原因,我从驱动程序下载的任何内容都会进入我的下载文件夹。
基本上我导航到一个网站并通过点击下载链接下载一些东西,如下所示:
result.click()
Run Code Online (Sandbox Code Playgroud)
这可以很好地下载文件。但我想将其下载到特定目录。我尝试使用这些方法来更改下载目录:
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"})
Run Code Online (Sandbox Code Playgroud)
和
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")
Run Code Online (Sandbox Code Playgroud)
directory我想要的位置在哪里。
这些都不起作用......谁能解释为什么或告诉我如何实际实现这一目标?
谢谢
leo*_*leo 28
截至 2021 年,FirefoxProfile早期答案中使用的类已被弃用,对于新的selenium.webdriver.firefox.options.Options:
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)
Run Code Online (Sandbox Code Playgroud)
您正在使用默认配置文件初始化浏览器,因为您没有将任何配置文件参数传递给您的浏览器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)
Run Code Online (Sandbox Code Playgroud)
下面的选项,它对我来说工作得很好。
# 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4737 次 |
| 最近记录: |