使用Selenium和Python控制Firefox下载提示

2024-04-20 04:26:56 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.folderList", 2);
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.dir", "/home/ripundeep/Desktop/Python Challenges /")    
profile.set_preference("browser.helperApps.alwaysAsk.force", False)
profile.set_preference("browser.download.manager.alertOnEXEOpen", False)
profile.set_preference("browser.download.manager.focusWhenStarting", False)
profile.set_preference("browser.download.manager.useWindow", False)
profile.set_preference("browser.download.manager.showAlertOnComplete", False)
profile.set_preference("browser.download.manager.closeWhenDone", False)
profile.set_preference("browser.helperApps.neverAsk.openFile","text/csv")
profile.set_preference("browser.helperApps.neverAsk.saveToDisk","text/csv")
profile.update_preferences()

driver = webdriver.Firefox(firefox_profile=profile)
driver.get(url)
driver.find_element_by_css_selector("#id").send_keys("keyword")
WebDriverWait(driver, 1, poll_frequency=0.1).until(lambda drv:  len(drv.find_elements_by_css_selector("#ctl00_ContentPlaceHolder1_btnSubmit")) > 0)
driver.find_element_by_css_selector("#submitid").click()
driver.find_element_by_css_selector("#DownloadLinkId").click()

我想停止firefox来显示下载提示并自动保存,我已经尝试了所有可能的解决方案,但都没有成功。请帮忙。在


Tags: browserfalsebydownloaddrivermanagerelementfind
1条回答
网友
1楼 · 发布于 2024-04-20 04:26:56

我记得提供更多的mime类型变体通常有助于解决以下问题:

mime_types = [
    'text/plain', 
    'application/vnd.ms-excel', 
    'text/csv', 
    'application/csv', 
    'text/comma-separated-values', 
    'application/download', 
    'application/octet-stream', 
    'binary/octet-stream', 
    'application/binary', 
    'application/x-unknown'
]
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", ",".join(mime_types))

我也认为你不应该打电话给profile.update_preferences()。在


除此之外,以下是查看Firefox检测到的mime类型的步骤:

  • 使用Firefox选中“自动保存此文件类型”复选框手动下载文件
  • 打开帮助->疑难解答信息
  • 找到“配置文件文件夹”按钮,单击它
  • 在profile文件夹中找到mimeTypes.rdf文件
  • 在文本编辑器中打开该文件并查找其中提到的mimetype—以urn:mimetype开头的XML节点属性值
  • 使用您在browser.helperApps.neverAsk.saveToDisk逗号分隔值中找到的mimetype

相关问题 更多 >