《手把手教你》系列技巧篇(五十七)-java+ selenium自動化測試-下載文件-下篇(詳細教程)
- 2022 年 1 月 13 日
- 筆記
- java+selenium自動化測試
1.簡介
前邊幾篇文章講解完如何上傳文件,既然有上傳,那麼就可能會有下載文件。因此宏哥就接著講解和分享一下:自動化測試下載文件。可能有的小夥伴或者童鞋們會覺得這不是很簡單嗎,還用你介紹和講解啊,不說就是訪問到下載頁面,然後定位到要下載的文件的下載按鈕後,點擊按鈕就可以了。其實不是這樣的,且聽宏哥徐徐道來:宏哥這裡的下載是去掉下載彈框的下載。
2.去掉下載彈窗的優點
(1)檢索鍵盤滑鼠自動化控制模組的導入
(2)可以無頭化運行,不影響同時進行的其他的任務
3.Chrome自動化下載文件
3.1參數說明
相比較Firefox來講,Chrome的下載默認不會彈出下載窗口的,咱們主要是想修改一下Chrome默認的下載路徑。
Chrome的設置看上去要比Firefox複雜一次,不過,你須要關注兩個設置。
Chrome瀏覽器類似,設置其options:
download.default_directory:設置下載路徑
profile.default_content_settings.popups:設置為 0 禁止彈出窗口
3.2程式碼設計
3.3參考程式碼
package lessons; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.WebDriver; import org.openqa.selenium.remote.CapabilityType; import org.openqa.selenium.remote.DesiredCapabilities; import java.util.HashMap; /** * @author 北京-宏哥 * * @公眾號:北京宏哥 * * @《手把手教你》系列技巧篇(五十六)-java+ selenium自動化測試-下載文件-上篇(詳細教程) * * @2021年12月19日 */ public class ChromeDownload { public static void main(String[] args) throws InterruptedException { String downloadFilepath = "D:\\test2"; HashMap<String, Object> chromePrefs = new HashMap<String, Object>(); chromePrefs.put("profile.default_content_settings.popups", 0); chromePrefs.put("download.default_directory", downloadFilepath); ChromeOptions options = new ChromeOptions(); HashMap<String, Object> chromeOptionsMap = new HashMap<String, Object>(); options.setExperimentalOption("prefs",chromePrefs); options.addArguments("--test-type"); DesiredCapabilities cap = DesiredCapabilities.chrome(); cap.setCapability(ChromeOptions.CAPABILITY, chromeOptionsMap); cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); cap.setCapability(ChromeOptions.CAPABILITY, options); WebDriver driver = new ChromeDriver(cap); driver.manage().window().maximize(); driver.get("//pypi.org/project/selenium/#files");//到目標網頁 Thread.sleep(10000); WebElement myElement = driver.findElement(By.xpath("//a[contains(text(),'selenium-4.1.0-py3-none-any.whl')]")); Actions action = new Actions(driver); myElement.click();//點擊下載 Thread.sleep(10000); System.out.println("browser will be close"); driver.quit(); } }
3.4運行程式碼
1.運行程式碼,右鍵Run AS->Java Appliance,控制台輸出,如下圖所示:
2.運行程式碼後電腦端的瀏覽器的動作,如下小影片所示:
4.小結
本來下一篇打算介紹和講解IE瀏覽器的,但是查了大量資料也嘗試了各種方法(包括網上說的鍵盤模擬和autoIT)都不能成功,因此就沒有寫關於IE瀏覽器的下載文件。如果有清楚的可以給宏哥留言哈!!!不過有兩個瀏覽器的方法了,夠用了。