Python Set Firefox Preferences for Selenium--下载位置

新手上路,请多包涵

我使用 Selenium Marrionette 和 GeckoDriver 来提取网络数据。我使用以下设置我的 Firefox 配置文件首选项:

 fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList", 1)
fp.set_preference("browser.helperApps.alwaysAsk.force", False)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir", "H:\Downloads")
fp.set_preference("browser.download.downloadDir","H:\Downloads")
fp.set_preference("browser.download.defaultFolder","H:\Downloads")

binary = FirefoxBinary(r'C:\Program Files (x86)\Mozilla Firefox\Firefox.exe')

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True

driver = webdriver.Firefox(capabilities=firefox_capabilities, firefox_binary=binary, firefox_profile = fp)

根据我在阅读 Unable to set firefox profile preferencesFirefoxProfile passed to FirefoxDriver 后的理解,现在使用 firefox_profile 时似乎什么也没做。因此,我需要实施对 firefox_capabilities 的新更新,但我不确定该怎么做。有任何想法吗?

原文由 d84_n1nj4 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 506
2 个回答

好吧,我相信我终于想通了这个烂摊子。我没有使用上面的代码,而是使用了以下指向我的 Firefox 配置文件文件夹的代码(如果您需要更新默认配置文件设置,请在运行此代码之前在 Firefox 中执行此操作):

 from selenium.webdriver.firefox.options import Options
binary = FirefoxBinary(r'C:\Program Files (x86)\Mozilla Firefox\Firefox.exe')
fp = (r'C:\Users\username\AppData\Roaming\Mozilla\Firefox\Profiles\oqmqnsih.default')
opts = Options()
opts.profile = fp
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
driver = webdriver.Firefox(capabilities=firefox_capabilities,firefox_binary=binary, firefox_options = opts)

我将这段代码与我的网络抓取代码一起运行,一旦我点击“导出 CSV”链接,它就会自动下载,而不是弹出下载管理器窗口。随时添加任何反馈。

原文由 d84_n1nj4 发布,翻译遵循 CC BY-SA 3.0 许可协议

初始代码是部分正确的。您必须将 browser.download.folderList 值设置为 2 :

 fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList", 2) # 0 means to download to the desktop, 1 means to download to the default "Downloads" directory, 2 means to use the directory
fp.set_preference("browser.helperApps.alwaysAsk.force", False)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir", "H:\Downloads")

binary = FirefoxBinary(r'C:\Program Files (x86)\Mozilla Firefox\Firefox.exe')

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True

driver = webdriver.Firefox(capabilities=firefox_capabilities,firefox_binary=binary, firefox_profile = fp)

原文由 Rony Rozas 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题