2017-06-03 52 views
1

我正在編寫一個程序來通過python中的selenium webdriver自動化web交互。當我通過腳本點擊「下載」按鈕時,我在最後一步卡住了,屏幕上彈出一個窗口彈出窗口,並選擇了默認選項「打開方式」。我希望我的程序首先點擊「保存文件」選項,然後點擊「確定」。我用下面這段代碼來設置Firefox配置文件通過Python中的Selenium Webdriver下載文件

profile = webdriver.FirefoxProfile() 
profile.set_preference('browser.download.folderList', 2) 
profile.set_preference('browser.download.manager.showWhenStarting', False) 
profile.set_preference('browser.download.dir', os.getcwd()) 
profile.set_preference('browser.helperApps.neverAsk.saveToDisk',"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") 

我的一個看法是,當窗口彈出是這樣

enter image description here

與選項「像的文件自動執行此操作這從現在開始「是可點擊的(通過複選框),那麼上面的代碼工作得很完美,但是當相同的選項不可點擊時(如下圖所示),那麼以上用於設置配置文件的代碼失敗。 任何人都可以幫助我在這種情況下?

enter image description here

回答

1

這裏是回答你的問題:

當你用新FirefoxProfile工作,使用set_preference方法來配置輪廓以這樣一種方式,以便在點擊SaveOk並沒有關係在下載過程中不會中斷。您可以設置配置如下:

profile = webdriver.FirefoxProfile() 
profile.set_preference("browser.download.dir",os.getcwd()); 
profile.set_preference("browser.download.folderList",2); 
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/csv,application/excel,application/vnd.msexcel,application/vnd.ms-excel,text/anytext,text/comma-separated-values,text/csv,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/octet-stream"); 
profile.set_preference("browser.download.manager.showWhenStarting",False); 
profile.set_preference("browser.helperApps.neverAsk.openFile","application/csv,application/excel,application/vnd.msexcel,application/vnd.ms-excel,text/anytext,text/comma-separated-values,text/csv,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/octet-stream"); 
profile.set_preference("browser.helperApps.alwaysAsk.force", False); 
profile.set_preference("browser.download.manager.useWindow", False); 
profile.set_preference("browser.download.manager.focusWhenStarting", False); 
profile.set_preference("browser.download.manager.alertOnEXEOpen", False); 
profile.set_preference("browser.download.manager.showAlertOnComplete", False); 
profile.set_preference("browser.download.manager.closeWhenDone", True); 
profile.set_preference("pdfjs.disabled", True); 

讓我知道如果這個答案您的問題。

+0

thanx回答,但不幸的是,同樣的彈出式窗口(在第二張圖片中)正在出現。我需要做一些改變,或者你有任何其他的解決方案 – user8023364

+0

給我一分鐘請,將更新我的代碼 – DebanjanB

+0

是的,一定要把你的tym。 – user8023364

相關問題