我們可以處理使用webdriver的使用火狐瀏覽器設置和Firefox配置文件設置在Firefox瀏覽器的下載彈出。
第1步:更新Firefox瀏覽器中的設置。
打開Firefox瀏覽器並導航到工具 - >選項 導航到應用程序。 將操作類型設置爲PDF的「保存文件」。
第2步:使用FirefoxProfile
File downloadsDir = new File("");
// Set Preferences for FirefoxProfile.
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.dir", downloadsDir.getAbsolutePath());
profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk",
"application/msword, application/csv, application/ris, text/csv, image/png, application/pdf, text/html, text/plain, application/zip, application/x-zip, application/x-zip-compressed, application/download, application/octet-stream");
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("browser.download.manager.focusWhenStarting", false);
profile.setPreference("browser.download.useDownloadDir", true);
profile.setPreference("browser.helperApps.alwaysAsk.force", false);
profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
profile.setPreference("browser.download.manager.closeWhenDone", true);
profile.setPreference("browser.download.manager.showAlertOnComplete", false);
profile.setPreference("browser.download.manager.useWindow", false);
profile.setPreference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", false);
profile.setPreference("pdfjs.disabled", true);
// Initialize the FireFoxDriver instance.
FirefoxDriver webDriver = new FirefoxDriver(profile);
步驟3初始化FireFoxDriver:執行腳本
執行其點擊下載PDF圖標的腳本。
結果:將下載PDF文件並且不會顯示下載彈出窗口。
我瞭解到,在你的情況下,你必須先切換()到彈出瀏覽器,然後點擊Firefox瀏覽器中的下載圖標。即使這樣做後,PDF也不會立即下載。您必須進行一些設置才能幫助您直接下載PDF。這些設置由@zsbappa提及。 – Amol
另外你的問題是,Selenium拋出一個異常,因爲沒有找到元素。實際上,在查找元素*時沒有任何挑戰,但是您尚未切換到打開機密文檔的彈出窗口。 – Amol
對不起,我意識到時刪除了我的評論。你的回答解決了我的問題,謝謝我創建了一個機器人(java.awt),在它詢問我是要保存還是打開文件後點擊確定按鈕,但它的工作方式像魅力。之後也必須確保switchTo.defaultContent()。我認爲我不必通過更改首選項「browser.helperApps.neverAsk.saveToDisk」來創建機器人。 –