Selenium是一個用於Web應用程序測試的工具,測試直接運行在瀏覽器中,就像真正的用戶在操做同樣。所以使用Selenium則能夠實現模擬真實用戶測試web應用程序。java
從上面能夠看到Selenium是用來測試web應用程序的,那麼天然離不開瀏覽器。那麼下面看看使用的步驟:git
對於IE瀏覽器和Chrome瀏覽器都須要下載driver。因爲牆過於堅實,此處可提供chromedriver的一個下載地址github
firefox只需指定firefox.exe的路徑web
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>2.42.2</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-chrome-driver</artifactId> <version>2.42.2</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency>
固然本文是以選擇Chrome瀏覽器爲例,若是你選擇其餘瀏覽器的話則須要添加其餘瀏覽器的driver 包,例如selenium-firefox-driver 和selenium-ie-driverchrome
此處用Unit Test做爲啓動selenium的程序,同時也表示一個case。瀏覽器
對於Chrome瀏覽器在執行case以前必須指定chromedriver.exe的路徑app
System.setProperty("webdriver.chrome.driver", "D:\\tool\\chromedriver.exe");
建立一個casemaven
建立WebDriver實例工具
WebDriver webDriver = new WebDriver();
指定url地址
測試
webDriver.get("http://zhangjun817.duapp.com");
爲了防止程序啓動瀏覽器時響應超時,設置請求超時時間,此處以秒爲單位
WebDriverWait wait = new WebDriverWait(webDriver, 5);
接下來就能夠調用webdriver裏的findElement方法選擇頁面元素了,我的覺的這個方法跟js裏的document.getElementBy方法很類似。惟一的區別是須要給與傳的參數爲特定的類By對象,例如:
//經過文字查找元素,並觸發單擊事件 webDriver.findElement(By.linkText("Sign in")).click(); //經過元素name查找元素並填充數據 webDriver.findElement(By.name("username")).sendKeys("harry.zhang@buglife.cn"); webDriver.findElement(By.name("password")).sendKeys("buglife.cn"); //經過Id查找元素 webDriver.findElement(By.id("login")).click(); //經過class屬性值查找元素 webDriver.findElement(By.className("glyphicon-log-out")).click();
固然也能夠經過webDriver.findElements查詢多個元素,此處再也不一一列舉,關於webdriver的方法可查看源碼。
可訪問源碼地址