簡體   English   中英

即使通過webdriver + python設置瀏覽器首選項后,也無法抑制OS下載文件窗口

[英]Cannot suppress the OS download file window even after setting browser preference through webdriver+python

我知道之前曾有人問過這個問題,但是在嘗試建議后,我一直在獲取操作系統下載文件窗口。 我正在嘗試下載pdf文件 我已經設置了瀏覽器首選項,但是盡管如此,它不會抑制OS窗口。

這是我編寫的代碼片段:

firefoxProfile = webdriver.FirefoxProfile()
firefoxProfile.set_preference('browser.download.folderList', 2)
firefoxProfile.set_preference('browser.download.manager.showWhenStarting', False)
firefoxProfile.set_preference('browser.download.dir', '/media/pinku/Pinku')
firefoxProfile.set_preference('browser.helperApps.alwaysAsk.force', False)
firefoxProfile.set_preference('browser.helperApps.neverAsk.saveToDisk',
'application/octet-stream')

self.driver = webdriver.Firefox(firefoxProfile)

我正在使用Ubuntu 12.10,Firefox,webdriver,python

我認為您可能弄錯了MIME類型。 嘗試這個

firefoxProfile.set_preference('browser.helperApps.neverAsk.saveToDisk',
'application/pdf,application/x-pdf')

可以在此處找到有關pdf MIME類型的討論。當您嘗試下載pdf時,應檢查Firefox看到的MIME類型。 服務器可能會設置錯誤!

旁注:每當出現此主題(通過selenium webdriver下載文件)時,我強烈建議您不要這樣做! 仔細閱讀文章“如何使用Selenium下載文件以及為什么不下載” 基本上,它建議使用其他方式來測試直接下載。

更新:我沒有將兩個mime類型放在一個字符串中,在此之前是錯誤的。 我還添加了有關檢查服務器實際交付內容的建議。

我一直在使用firefox 24.03(這是ESR版本),此版本的firefox引入了pdfjs。 這將在瀏覽器中打開PDF。

因此,您需要抑制這一點。 這是為我工作的代碼/ Firefox配置文件。

fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir","C:\\temp")
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","application/pdf")
fp.set_preference("plugin.disable_full_page_plugin_for_types", "application/pdf")
fp.set_preference("pdfjs.disabled", True)
driver = webdriver.Firefox(firefox_profile=fp)

使用此配置文件,我所有的pdf下載都轉到“ C:\\ temp”

我有一個類似的問題,因為服務器返回的mime類型是“ text / plain”而不是“ text / csv”。

這對我有用(使用watir-webdriver):

profile = Selenium::WebDriver::Firefox::Profile.new
profile['browser.download.folderList'] = 2 # custom location
profile['browser.download.dir'] = download_directory
profile['browser.helperApps.neverAsk.saveToDisk'] = "text/plain"
browser = Watir::Browser.new :firefox, :profile => profile

有關通過watir-webdriver下載的更多信息,請訪問: http ://watirwebdriver.com/browser-downloads/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM