(51Testing軟件測試網獲人民郵電出版社和作者授權連載本書部分章節。任何個人或單位未獲得明確的書面許可,不得對本文內容復制、轉載或進行鏡像,否則將追究法律責任。)
操作完畢后,可看到如圖5-17所示的新建項目。

圖5-17 新建的Java項目
2.添加引用
(1)在Package Explorer中用鼠標右鍵單擊Project1,選擇Properties,如圖5-18所示。
(2)選擇Java Build Path,在右邊選擇Libraries,單擊Add External JARs,如圖5-19所示。

圖5-18 選擇Properties菜單命令
圖5-19 Add External JARs按鈕
(3)選擇要添加的jar文件,如圖5-20所示。

圖5-20 選擇要添加的Jar文件
(4)單擊“打開”按鈕后,再單擊Add External JARs按鈕,如圖5- 所示。

(5)選擇Selenium的Libs文件夾中所有與Java相關的基礎框架,如圖5- 所示。

圖5- 選擇與Java相關的基礎框架
(6)單擊“打開”按鈕,然后單擊OK按鈕在Package Explorer中,可以看到剛才添加的包,如圖5-21所示。

圖5-21 查看添加的包
(7)在main函數中輸入如圖5-22所示的代碼,然后按F11執行。

圖5-22 Java代碼
運行結果如圖5-23所示。
在本章中的所有Java程序都可按照這種方式進行創建。

圖5-23 程序運行結果
5.3 選擇瀏覽器開始測試
要開始測試,首先得清楚要測試什么瀏覽器,在Selenium 2中,一共支持以下幾種瀏覽器的測試。
Firefox (FirefoxDriver)。
IE (InternetExplorerDriver)。
Chrome (ChromeDriver)。
Opera (OperaDriver)。
Android (AndroidDriver)。
iPhone (IPhoneDriver)。
需要注意的是,其中前3個瀏覽器是很容易就能測試的,只需在電腦中安裝相應的瀏覽器就可以開始測試了。
而對于Opera瀏覽器,C#和Java的處理方式各不相同。而對于Android和iPhone,它們在測試前需要安裝支持軟件,這些都將在“8.1 對Opera/IPhone/Android進行測試”中進行介紹。
所以,在最開始階段,假定只會用到前面3種瀏覽器,并且已經在自己機器上進行過安裝,然后就可以開始測試了。
要開始測試,首先得創建Selenium的實例,也就是對應的Driver。
如果需要對Firefox進行測試,則需要用到FirefoxDriver,代碼如程序清單5-3或程序清單5-4所示。
程序清單5-3 C#代碼
usingSystem; usingOpenQA.Selenium;//注意這里引用了Selenium的命名空間 usingOpenQA.Selenium.Firefox;//注意這里引用了Selenium的命名空間 namespaceConsoleApplication1 { classProgram { staticvoidMain(string[]args) { IWebDriverdriver=newFirefoxDriver(); } } } |
程序清單5-4 Java代碼
packageProject1; importorg.openqa.selenium.*;//注意這里導入了selenium包中內容 importorg.openqa.selenium.WebDriver.*;//注意這里導入了selenium包中內容 importorg.openqa.selenium.firefox.*;//注意這里導入了selenium包中內容 publicclassProject1Class{ publicstaticvoidmain(String[]args){ //如果啟動出現問題,可以使用System.setProperty指出firefox.exe的路徑 //System.setProperty("webdriver.firefox.bin","D:\\ProgramFiles(x86)\\MozillaFirefox\\firefox.exe"); WebDriverdriver=newFirefoxDriver(); } } |
注意程序清單5-3和程序清單5-4中引用了一個名為OpenQA.Selenium.Firefox的命名空間,FirefoxDriver位于該命名空間內。
如果要使用IE,則命要對名空間和實例化對象部分更改,如程序清單5-5或程序清單5-6所示。
程序清單5-5 C#代碼
using System; using OpenQA.Selenium; using OpenQA.Selenium.IE; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { IWebDriver driver =new InternetExplorerDriver(); } } } |
程序清單5-6 Java代碼
package Project1; import org.openqa.selenium.*; import org.openqa.selenium.WebDriver.*; import org.openqa.selenium.ie.*; public class Project1Class { public static void main(String[] args) { //如果啟動出現問題,可以使用System.setProperty指明webdriver.ie.driver的路徑,webdriver.ie.driver可以在http://code.google.com/p/selenium/downloads/list下載 //System.setProperty("webdriver.ie.driver","E:\\IEDriverServer.exe"); WebDriver driver=new InternetExplorerDriver(); } } |
對Chrome也是一樣的,只需將命名空間改為OpenQA.Selenium.Chrome,實例化對象改為new ChromeDriver()即可。
編譯并執行程序清單的代碼,對應的瀏覽器將會打開,如圖5-24所示。

圖5-24 打開的瀏覽器
5.4 瀏覽器導航對象Navigation
打開了瀏覽器器之后,就可以打開指定的頁面來進行測試了。在Selenium 1中,可以直接通過Selenium的open()方法來打開頁面,但在Selenium 2中則不同,要導航頁面,需要用到Navigation對象。
可以通過WebDriver的Navigate()方法獲得Navigation對象實例,代碼如程序清單5-7和程序清單5-8所示。
程序清單5-7 C#代碼
IWebDriver driver = new FirefoxDriver(); INavigation navigation = driver.Navigate(); |
程序清單5-8:Java代碼
WebDriver driver = new FirefoxDriver(); Navigation navigation = driver.navigate(); |
在獲取該對象后,就可以執行跳轉到指定URL、前進、后退、刷新頁面等操作了。
5.4.1 GoToUrl()/to()
對C#來說,可以用GoToUrl()方法來實現頁面的跳轉;而對Java來說,可以使用to()來進行跳轉。在這兩個方法中,只需將URL作為參數即可,如程序清單5-9或程序清單5-10所示。
程序清單5-9 C#代碼
IWebDriver driver = new FirefoxDriver(); INavigation navigation = driver.Navigate(); navigation.GoToUrl(http://www.baidu.com); |
程序清單5-10 Java代碼
WebDriver driver = new FirefoxDriver();
Navigation navigation = driver.navigate();
navigation.to(http://www.baidu.com);
執行代碼,將打開百度主頁,如圖5-25所示。

圖5-25:跳轉到百度主頁
注意:執行GoToUrl()/to()方法時,代碼會自動等待頁面加載完畢再執行下一句,也就是瀏覽器狀態欄為“完成”時再執行下一句。
5.4.2 Back()/Forward()
在瀏覽器上,可以按“前進”和“后退”按鈕來進行導航,通過Back()/Forward()方法,也可以實現這種導航功能。
下面將舉例說明先打開百度主頁,再打開Google主頁,之后進行后退和前進操作,代碼如程序清單為防止執行過快,每個操作后面加了3秒等待時間Thread.Sleep(3000)。
程序清單5-11 C#代碼
using System; using OpenQA.Selenium; using OpenQA.Selenium.Firefox; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { IWebDriver driver = new FirefoxDriver(); INavigation navigation = driver.Navigate(); navigation.GoToUrl(http://www.baidu.com); navigation.GoToUrl("http://www.google.com.hk"); System.Threading.Thread.Sleep(3000); navigation.Back(); System.Threading.Thread.Sleep(3000); navigation.Forward(); } } } |
本文選自《Selenium自動化測試指南》第五章節,本站經人民郵電出版社和作者的授權,近期將進行部分章節的連載,敬請期待!
版權聲明:51Testing軟件測試網獲人民郵電出版社和作者授權連載本書部分章節。
任何個人或單位未獲得明確的書面許可,不得對本文內容復制、轉載或進行鏡像,否則將追究法律責任。
相關文章:
安裝并引用Selenium 2—Selenium自動化測試指南(1)
查找條件對象By—Selenium自動化測試指南(3)