2016-07-19 29 views
0

這裏是我的代碼:控制Firefox的下載提示使用Selenium和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的告訴我下載提示,並自動保存它,我已經嘗試了所有可能的解決方案,但沒有奏效。請幫忙。

+0

你能後發現的MIME類型一些* ...所有可能的解決方案*? – linusg

+0

第一個解決方案是在代碼....通過使用硒更改Firefox的配置文件。 第二種解決方案,當它提示時,我檢查了「不要再問我了」,然後重新運行代碼,但出現相同的位置。 第三種解決方案是通過我可以在Firefox或其他設置中手動進行的更改。 但最終沒有任何工作。當我運行代碼提示符ocuur時。 –

回答

2

我記得我提供更多的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()


除此之外,這裏都是看的步驟是什麼MIME類型Firefox的檢測:

  • 手動下載的文件與Firefox選中「自動保存此文件類型」複選框
  • 開放幫助 - >疑難解答信息
  • 找到「配置文件夾」按鈕,點擊它
  • 裏面的配置文件夾找到mimeTypes.rdf文件
  • 在文本編輯器打開該文件,並查找有提到的MIME類型 - XML節點屬性與urn:mimetype
  • 啓動值,使用您在browser.helperApps.neverAsk.saveToDisk逗號分隔值
+0

仍然會發生。沒有工作。 :( –

+0

@ user3805995更新說明如何看看MIME類型的Firefox認爲這個文件是。希望有幫助。 – alecxe

相關問題