注意:我們正致力于完善幫助指南的每一個章節(jié),雖然這個章節(jié)仍然存在需要完善的地方,不過我們堅信當前你看到的幫助信息是精確無誤的,后續(xù)我們會提供更多的指導(dǎo)信息來完善幫助文檔。
1.WebDriver介紹
Selenium 2.0主要的新特性是集成了WebDriver API。我們設(shè)計WebDriver的初衷是提供更加簡單明了的接口來彌補Selenium-RC API的不足。在動態(tài)網(wǎng)頁中,通常只會更新局部的html元素,WebDriver會很好的幫助用戶快速定位這些元素。我們終的目的是通過提供精心設(shè)計的面向?qū)ο驛PI來解決現(xiàn)代高級網(wǎng)頁中的測試難題。
2.WebDriver如何驅(qū)動瀏覽器?與Selenium-RC有什么區(qū)別?
不同類型的瀏覽器都會有原生的接口支持自動化操作,Selenium通過這些接口直接向瀏覽器發(fā)送指令。如何發(fā)送這些指令取決于你當前使用的瀏覽器類型,我們將在這一章節(jié)后面來詳細介紹。
看上去WebDriver與之前Selenium-RC的實現(xiàn)方式類似,實際上兩者之間存在著本質(zhì)的區(qū)別。對于所有類型的瀏覽器Selenium- RC都是使用的同一種方法:當瀏覽器啟動時,向其中注入javascript,從而使用這些js來驅(qū)動瀏覽器中的AUT(Application Under Test)。WebDriver并沒有使用這種技術(shù),它是通過調(diào)用瀏覽器原生的自動化API直接驅(qū)動瀏覽器。
3.WebDriver與Selenium Server
是否需要是用Selenium Server取決于你使用WebDriver的方式。以下兩種情況不需要使用Selenium Server,WebDriver直接運行瀏覽器即可:1、testcases僅僅使用了Webdriver的API;2、瀏覽器和testcase在同一臺PC上,而且testcases僅僅使用了Webdriver的API。
以下三種情況你需要結(jié)合Selenium Server來使用WebDriver:
1)使用Selenium-Grid管理集群環(huán)境(或者虛擬機)上的testcase;
2)需要調(diào)用非本機上的不同版本的瀏覽器;
3)未使用任何language binding(java/c#/python/ruby),且有意向使用HtmlUnitDriver。
4.配置Selenium-WebDriver工程
安裝Selenium是指在開發(fā)環(huán)境上配置一個工程,然后可以在這個工程中用Selenium編寫程序。如何配置取決于你使用的開發(fā)語言和編程環(huán)境。
使用Maven是配置一個Selenium 2.0 java工程簡單的方式。Maven會下載所有java bingdings以及所有相關(guān)的庫(the Selenium 2.0 java client library)。通過使用pom.xml(maven配置文件)來新建工程,你可以根據(jù)自己的喜好將Maven工程導(dǎo)入IntelliJ IDEA或者Eclipse。
首先,創(chuàng)建一個文件夾存放Maven工程文件。然后,創(chuàng)建pom.xml,你可以使用text editor來編輯。鑒于已經(jīng)有很多關(guān)于“如何在Maven工程中使用pom.xml”的參考文獻,這里將不再過多的討論相關(guān)細節(jié)。下面給出一個示例,為你的工程也創(chuàng)建一個類似的文件。
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
MySel20Proj
MySel20Proj
1.0
org.seleniumhq.selenium
selenium-java
2.38.0
com.opera
operadriver
com.opera
operadriver
1.5
org.seleniumhq.selenium
selenium-remote-driver
請確認你使用的WebDriver是新的當前版本。在這篇文檔撰寫時,上述示例給出的是新的版本。在Selenium2.0發(fā)布不久WebDriver有過頻繁的更新。請在這個鏈接Maven Download Page確認當前的版本,相應(yīng)地修改你工程中的pon.xml。
現(xiàn)在,你可以通過dos界面使用CD命令進入工程所在文件夾,通過以下命令運行Maven。
mvn clean install
運行之后會自動下載Selenium及相關(guān)套件,并加載到你的工程中去。
后,將你的工程導(dǎo)入到你偏好的IDE中。如果你對導(dǎo)入的過程不是很清楚,我們已經(jīng)準備了操作指南。
Importing a maven project into IntelliJ IDEA.Importing a maven project into Eclipse
5.如何將自動化工程從Selenium1.0遷移到Selenium2.0
已經(jīng)在Selenium1.0上構(gòu)建測試工程的用戶,我們?yōu)槟峁┝艘环葜笇?dǎo)如何將已有的代碼遷移到Selenium2.0。Selenium2.0的首席開發(fā)工程師Simon Stewart為此撰寫了一片文章:Magrating From Selenium RC to Selenium WebDriver。
6.Selenium-WebDriver API簡介
WebDriver可以用來實現(xiàn)Web應(yīng)用程序的自動化測試,特別適合于驗證實際結(jié)果是否符合預(yù)期結(jié)果的場景。WebDriver旨在提供比 Selenium1.0更加易用、友好的API,便于用戶的探索和理解,從而使測試用例變得容易閱讀和維護。WebDriver沒有使用任何第三方測試框架,所以它可以很好與單元測試工具或者古老的main函數(shù)結(jié)合使用。本章節(jié)將介紹如何使用WebDriver的API,幫助你慢慢開始了解 WebDriver。如果你還沒有新建一個Selenium工程,請先完成這個操作,在這個章節(jié)的上面有詳細的描述。
當你創(chuàng)建完Selenium工程后,你會發(fā)現(xiàn)WebDriver和普通的第三方庫一樣是完全獨立的,在你使用之前不需要啟動任何額外的進程或者安裝程序,相反如果你使用Selenium-RC需要先啟動代理服務(wù)器。
注意:當你使用如下WebDriver時需要額外的步驟:Chrome Driver,Opera Driver,Android Driver,IPhone Driver。
現(xiàn)在你肯定躍躍欲試要寫一些代碼了。我們以一個簡單的例子來開始第一段旅程:在Google上搜索“Cheese”,并打印出搜索結(jié)果網(wǎng)頁的標題。