【问题标题】:How to set a specific download location in Mozilla - Marionette web driver?如何在 Mozilla - Marionette Web 驱动程序中设置特定的下载位置?
【发布时间】:2017-02-26 09:57:44
【问题描述】:

我有一个自动化脚本,它在最近的 Mozilla 更新之前运行良好。 selenium-python 脚本自动执行我的一些浏览器操作,并将某些报告 (csv) 保存到定义的位置。

我一直在使用 selenium 2.53.6,它使用以下代码:

profile = webdriver.firefox.firefox_profile.FirefoxProfile()
profile.set_preference('browser.helperApps.neverAsk.saveToDisk',"text/csv, application/pdf,application/octet-stream")
profile.set_preference('browser.download.folderList',2)
profile.set_preference("browser.download.manager.showWhenStarting",False)
profile.set_preference('browser.download.dir','D:\Downloads')
driver = webdriver.Firefox(firefox_profile=profile)

目前我使用 selenium-python 3.0.1 和 Firefox 48。这里我已将 geckodriver 路径添加到环境变量中,并且能够使用以下代码启动 firefox:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

caps = DesiredCapabilities.FIREFOX
caps["marionette"] = True
driver = webdriver.Firefox(capabilities=caps)

我很好奇如何在 firefox-marionette 驱动程序中执行 profile.set_preference 等效项。我找不到任何关于它的文档。

请指教。

【问题讨论】:

    标签: python selenium firefox firefox-marionette


    【解决方案1】:

    您也可以传递profile 以启动FirefoxDriver 为:-

    driver = webdriver.Firefox(capabilities=caps, firefox_profile=profile)
    

    您也可以将firefox_profile 设置为capabilities 为:-

    caps["firefox_profile"] = profile
    driver = webdriver.Firefox(capabilities=caps)
    

    【讨论】:

    • 谢谢你,但它还没有工作。 profile.set_preference("browser.download.folderList",2) profile.set_preference("browser.download.manager.showWhenSta‌​rting", False) profile.set_preference("browser.download.dir", 'C:\Users\Surabhil\Desktop\Downloads') profile.set_preference("browser.helperApps.neverAsk.saveToDi‌​sk", "application/xls;text/csv") 我的是一个 xls 文件。此外,当我检查浏览器的 about:config 时,我仍然可以看到 browser.download.folderList 为 1
    • 另外,如果我的理解是正确的,Selenium 3 会将默认配置文件作为木偶。这就是为什么它不采用 Firefox 驱动程序配置文件的原因吗?
    • @SaurabhGaur 你确定它适用于 Selenium 3.0.1 和 Geckodriver 0.11.1 吗?我已使用 FirefoxOptions 创建驱动程序,但设置被忽略。
    • 我也遇到了自动下载的问题——有更新吗?这是我的代码:fp = webdriver.FirefoxProfile()fp.set_preference("browser.download.folderList", 2) fp.set_preference("browser.download.manager.showWhenStarting‌​",False) fp.set_preference("browser.download.dir", "H:\Downloads") fp.set_preference("browser.download.downloadDir","H:\Downloa‌​ds") fp.set_preference("browser.download.defaultFolder","H:\Downl‌​oads")firefox_capabilities['marionette'] = Truedriver = webdriver.Firefox(capabilities=firefox_capabilities,firefox_‌​binary=binary, firefox_profile = fp)
    • 我相信我在这里解决了这个问题Python Firefox Download Profile
    猜你喜欢
    • 1970-01-01
    • 2014-10-03
    • 2015-03-05
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多