前言
Selenium是一個(gè)用于Web應(yīng)用程序測(cè)試的工具,測(cè)試直接運(yùn)行在瀏覽器中,像真正的用戶在操作一樣。因此使用Selenium則可以實(shí)現(xiàn)模擬真實(shí)用戶測(cè)試web應(yīng)用程序。
如何使用
從上面可以看到Selenium是用來測(cè)試web應(yīng)用程序的,那么自然離不開瀏覽器。那么下面看看使用的步驟:
選擇瀏覽器
對(duì)于IE瀏覽器和Chrome瀏覽器都需要下載driver。由于墻過于堅(jiān)實(shí),此處可提供chromedriver的一個(gè)下載地址
firefox只需指定firefox.exe的路徑
添加maven依賴組件
<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>
當(dāng)然本文是以選擇Chrome瀏覽器為例,如果你選擇其他瀏覽器的話則需要添加其他瀏覽器的driver 包,例如selenium-firefox-driver 和selenium-ie-driver
創(chuàng)建一個(gè)用例
此處用Unit Test作為啟動(dòng)selenium的程序,同時(shí)也表示一個(gè)case。
對(duì)于Chrome瀏覽器在執(zhí)行case之前必須指定chromedriver.exe的路徑
System.setProperty("webdriver.chrome.driver", "D:\tool\chromedriver.exe");
創(chuàng)建一個(gè)case
創(chuàng)建WebDriver實(shí)例
WebDriver webDriver = new WebDriver();
指定url地址
webDriver.get("http://zhangjun817.duapp.com");
為了防止程序啟動(dòng)瀏覽器時(shí)響應(yīng)超時(shí),設(shè)置請(qǐng)求超時(shí)時(shí)間,此處以秒為單位
WebDriverWait wait = new WebDriverWait(webDriver, 5);
接下來可以調(diào)用webdriver里的findElement方法選擇頁(yè)面元素了,個(gè)人覺的這個(gè)方法跟js里的document.getElementBy方法很相似。的區(qū)別是需要給與傳的參數(shù)為特定的類By對(duì)象,例如:
//通過文字查找元素,并觸發(fā)單擊事件
webDriver.findElement(By.linkText("Sign in")).click();
//通過元素name查找元素并填充數(shù)據(jù)
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();
當(dāng)然也可以通過webDriver.findElements查詢多個(gè)元素,此處不再一一列舉