我是新來的硒,我被分配了一個任務來執行下面提到的場景。如何處理在selenium webdriver中下載文件?
場景:對於給定的URL,我需要輸入一個網頁,該網頁有多個鏈接。並且鏈接可能有pdf或HTML文件。 我需要通過單擊該鏈接下載文件,並通過在Excel表格中輸入鏈接參考進行管理。
所以我的任務有兩個挑戰:
1)如何處理XL表輸入的值作爲輸入。
2)如何利用硒
下載一個PDF文件,請幫我找到在任何地點,在那裏我可以下載一個文件
感謝
我是新來的硒,我被分配了一個任務來執行下面提到的場景。如何處理在selenium webdriver中下載文件?
場景:對於給定的URL,我需要輸入一個網頁,該網頁有多個鏈接。並且鏈接可能有pdf或HTML文件。 我需要通過單擊該鏈接下載文件,並通過在Excel表格中輸入鏈接參考進行管理。
所以我的任務有兩個挑戰:
1)如何處理XL表輸入的值作爲輸入。
2)如何利用硒
下載一個PDF文件,請幫我找到在任何地點,在那裏我可以下載一個文件
感謝
1A)你應該嘗試了JExcelApi:http://jexcelapi.sourceforge.net/
1b)另一個想法是使用Apache POI。你可以找到例子:http://poi.apache.org/spreadsheet/how-to.html#sxssf
2)要下載PDF文件,你可以試試這個硒代碼(用Java編寫的):
FirefoxProfile profile = new FirefoxProfile();
WebDriver driver = new FirefoxDriver(profile);
profile.setPreference("browser.helperapps.neverAsk.saveToDisk" , "application/octet-stream;application/pdf");
profile.setPreference("browser.helperApps.alwaysAsk.force", false);
profile.setPreference("browser.download.manager.showWhenStarting",false);
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.dir","C:\\savedPDFs");
當你點擊一個鏈接(可有pdf文件),PDF格式文件將被自動下載到指定的文件夾中(不彈出)
試試下面的代碼
FirefoxProfile profile = new FirefoxProfile();
String path = "D:\\Downloads_sel";
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.dir", path);
profile.setPreference("browser.download.alertOnEXEOpen", false);
profile.setPreference("browser.helperApps.neverAsksaveToDisk", "application/x-msexcel,application/excel,application/x-excel,application/excel,application/x-excel,application/excel,application/vnd.ms-excel,application/x-excel,application/x-msexcel");
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("browser.download.manager.focusWhenStarting", false);
profile.setPreference("browser.helperApps.alwaysAsk.force", false);
profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
profile.setPreference("browser.download.manager.closeWhenDone", false);
profile.setPreference("browser.download.manager.showAlertOnComplete", false);
profile.setPreference("browser.download.manager.useWindow", false);
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", false);
profile.setPreference("pdfjs.disabled", true);
WebDriver driver = new FirefoxDriver(profile);
有關完整的MIME類型列表按照鏈接:http://qaautomationworld.blogspot.in/2014/02/file-downlaoding-using-selenium.html
這個問題前幾次一直問我卻用MetaModel Apache api用於讀取和寫入到Excel。它允許我使用SQL語法來查詢Excel。如果你能找到它,我在我的GitHub帳戶中做了一個這樣的示例項目。
此外,用於下載使用Selenium測試文件,我只是這樣做:
1. Use selenium to get the file download hyperlink.
2. Use Apache HttpUtils to download the file. Don't use the browser to do it.
的Apache POI。 http://www.toolsqa.com/selenium-webdriver/data-driven-testing-excel-poi/
如果您正在使用Firefox
使用Firefox配置文件來下載你的文件。此配置文件跳過Firefox的對話框。 在行: -
pro.setPreference("browser.downLoad.folderList", 0);
browser.download.folderList的值可以設置爲0,1,或2設置爲0時,Firefox會保存通過瀏覽器下載的用戶桌面上的所有文件。設置爲1時,這些下載將存儲在Downloads文件夾中。設置爲2時,再次使用爲最近下載指定的位置。
,你需要實現Firefox的配置代碼: -
FirefoxProfile pro=new FirefoxProfile();
pro.setPreference("browser.downLoad.folderList", 0);
pro.setPreference("browser.helperApps.neverAsk.saveToDisk", "Applications/zip");
WebDriver driver=new FirefoxDriver(pro);
driver.get("http://selenium-release.storage.googleapis.com/2.47/selenium-java-2.47.1.zip");
希望它會幫助你:)
經過一番實地調查,如何下載在Firefox中的PDF文件沒有任何另存爲彈出式,我發現在Firefox的配置文件中的最低要求的偏好:
profile.setPreference("pdfjs.disabled", true);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream;application/pdf");
cource你可以一些額外的偏好。 它適用於Firefox 45-46版本。
好的答案,除了有一個錯字 - 第四個參數應該是browser.helperApps.neverAsk.saveToDisk –