gpt4 book ai didi

python Selenium : Set Firefox preferences failed

转载 作者:行者123 更新时间:2023-12-05 07:46:34 30 4
gpt4 key购买 nike

我正在尝试使用 selenium 在网页中自动下载文件。我们可以考虑例如我将尝试自动从 https://github.com/mozilla/geckodriver/releases 下载 geckodriver | .

我的 python 代码如下:

这是我使用的代码:

profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.folderList",2)
profile.set_preference("browser.download.manager.showWhenStarting",False)
profile.set_preference("browser.download.dir", path)
profile.set_preference("browser.download.downloadDir", path)
profile.set_preference("browser.download.defaultFolder", path)
profile.set_preference("browser.helperApps.alwaysAsk.force", False)
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/x-gzip, application/tar+gzip, application/x-gtar, application/x-compressed")
profile.set_preference("pdfjs.disabled", True)
profile.update_preferences()
browser = webdriver.Firefox(profile)
browser.get('https://github.com/mozilla/geckodriver/releases')

sleep(5)
try:
field = browser.find_element_by_xpath("//ul[@class='release-downloads']//li/a/strong[contains(text(),'geckodriver-v0.11.1-linux64.tar.gz')]")
if(field != None):
field.click()
find = True
except Exception,e:
print str(e)

我的问题是,如果我尝试这段代码,我会得到 firefox 的弹出式下载:

enter image description here

我想也许我设置了错误的首选项 browser.helperApps.neverAsk.saveToDisk 值,所以我尝试下载 zip 文件,但我遇到了同样的问题。然后我查看了 about:config 但不幸的是我发现参数设置为默认值。例如我发现 browser.download.folderList 的值是 1 而不是 2:

enter image description here

另外,browser.helperApps.neverAsk.saveToDisk 为空值,并且 browser.download.dir 不存在。

编辑:不设置首选项下载

然后我尝试不使用此代码设置首选项:

browser =  webdriver.Firefox()
browser.get('https://github.com/mozilla/geckodriver/releases')

sleep(5)
try:
field = browser.find_element_by_xpath("//ul[@class='release-downloads']//li/a/strong[contains(text(),'geckodriver-v0.11.1-linux64.tar.gz')]")
if(field != None):
field.click()
find = True
except Exception,e:
print str(e)
pass

但是我遇到了同样的问题,比如我删除的设置首选项部分没有任何影响。但考虑到如果我手动打开 Firefox 并手动单击下载链接,我可以直接使用 firefox 的确认弹出窗口下载文件,没有任何问题。

我的代码有错误吗?或者有什么问题?

开发环境:Python2.7、selenium3.0.1、Firefox 49。

最佳答案

您应该使用分号来分隔 mime 类型:

profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/x-gzip;application/tar+gzip;application/x-gtar;application/x-compressed")

关于 python Selenium : Set Firefox preferences failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40650401/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com