【问题标题】:What is wrong with this selenium firefox profile to download file into customized folder?这个 selenium firefox 配置文件将文件下载到自定义文件夹有什么问题?
【发布时间】:2017-10-18 05:59:54
【问题描述】:

我正在使用 selenium 和 python v3.6 来自动化 firefox 以将文件下载到自定义文件夹中。文件夹的位置是C:/Users/username/Dropbox/Inv/

以下是我的 Firefox 个人资料。

profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2) # custom location
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.download.dir', 'C:/Users/username/Dropbox/Inv/')
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/plain')
profile.set_preference('browser.helperApps.neverAsk.openFile', 'text/plain')

目前,该文件始终下载到默认文件夹C:\Users\username\Downloads。如何将下载的文件夹位置设为C:/Users/username/Dropbox/Inv/

【问题讨论】:

标签: python python-3.x selenium firefox


【解决方案1】:

您需要在启动 Firefox 时使用profile

driver = webdriver.Firefox(firefox_profile = profile)

在 Selenium 文档常见问题解答中查看 8.4. How to auto save files using custom Firefox profile ?

这是链接中的示例:

import os

from selenium import webdriver

fp = webdriver.FirefoxProfile()

fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir", os.getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")

browser = webdriver.Firefox(firefox_profile=fp)
browser.get("http://pypi.python.org/pypi/selenium")
browser.find_element_by_partial_link_text("selenium-2").click()

【讨论】:

  • 感谢您的帮助,但我没有足够的积分来投票。
【解决方案2】:

我会回答我自己的问题。问题在于指定下载目录的字符串。我应该使用\\ 而不是/

profile.set_preference('browser.download.dir', 'C:\\Users\\username\\Dropbox\\Inv')

代码已经过验证,现在可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 2016-02-21
    • 2020-08-20
    • 1970-01-01
    • 2021-10-26
    相关资源
    最近更新 更多