自動化測試--Selenium學習小結
一、自動化測試的概念及意義:
1.什么是自動化測試:
一般是指軟件測試的自動化,軟件測試就是在預設條件下運行系統或應用程序,評估運行結果,預先條件應包括正常條件和異常條件。
2.意義:
讓測試更有效率,利用更多的空余時間,減少人力資源。
二、selenium工具
我用的是java語言,所以接下來的例子和方法都是基於java的。
1.環境配置
(1)Jdk的配置;
我用的是1.7的jdk,配置方法都一樣,新建一個JAVA_HOME,把你裝好的jdk的路徑復制過去。
在新建一個CLASSPATH,變量值填寫:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
然后找到path,沒有就新建一個,在變量值中加上:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(像下圖如果變量值中有內容,前面需加上“;”用來隔開)
最后檢驗jdk是否安裝正確,輸入win+R,打開cmd,輸入java -version,得到下圖則說明安裝成功:
(2)Eclipse或者myeclipse工具;
下載三個文件:selenium-java-2.48.2.jar
selenium-java-2.48.2-srcs.jar
Selenium-server-standalone-2.46.0.jar
這三個文件要放到項目的lib中
2.瀏覽器:
支持ie,firefox,google。
二、小試身手
1.打開瀏覽器:
Firefox瀏覽器(我使用的是firefox,后面的例子也是使用的firefox,出錯少,方便使用)
A.如果你的火狐瀏覽器默認安裝的:
B.自定義安裝的,需要指定路徑:
Google瀏覽器(需要下載一個Google的driverserver)
Ie瀏覽器(需要下載一個ie的driverserver)
2.打開網址(上下文的wd是我自己的命名,可以自己更改)
3.完整的例子:
三、更具體的運用
1.查找頁面元素
通過id,name,text查詢元素
wd.findElement(By.id(""));
wd.findElement(By.name(""));
wd.findElement(By.linkText(""));
一般沒有特定要求的頁面元素很多都沒有id和name這時候我們就要用到一個強大的查詢語句byxpath
例如我們要定位到上圖的圖片,也就是歐曼的圖標,我們用xpath定位:
wd.findElement(By.xpath("//img[contains(@src,'themes/auman/images/logo.png')]"));
2.頁面操作
模擬鼠標點擊:
Wd.click();
關閉網頁:
Wd.close();
清空輸入框中的內容:
Wd.clear();
在輸入框中輸入內容:
Wd.sendKeys(“”);
獲取輸入框中的內容:
Wd.getText();
選擇下拉框中的元素:
Select select = new Select(wd.findElement(By.id("select")));
切換到某個frame:
driver.switchTo().frame("");
從一個frame切換到另一個frame:
driver.switchTo().frame("");
切換到某個window:
driver.switchTo().window("windowName");
返回父iframe:(一般在跳轉frame之前都寫上這個語句)
driver.switchTo().defaultContent();
刷新頁面:
wd.navigate().refresh();
頁面前進后退:
wd.navigate().forward();
wd.navigate().back();
懸停鼠標:
懸停鼠標可能你覺得為什么需要這個操作,我已歐曼為例子,像這一欄每個車型下都有多個元素,想要找到元素,這個時候就需要模擬鼠標懸停使得隱藏js的讓我們可以找到:
懸停前:
懸停后:
實例:
4.設置等待時間:
強行停止:(1000代表1s)
Thread.Sleep(1000);
全局等待:(單位:s)
wd.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
5.得到當前頁面的url:
wd.getCurrentUrl();
6.判斷頁面是否跳轉正確
assertEquals("http://mall.aumantruck.com/goods_list/2915/66/add_time/desc/page-1.html",wd.getCurrentUrl());
有各種驗證方法,但是要是能夠證明的特征元素才行,避免出現誤差!可以驗證url是否是你預期的,或者有些頁面元素是你預期會有的。