SeleniumWebDriver
注意:我們正致力于完善幫助指南的每一個(gè)章節(jié),雖然這個(gè)章節(jié)仍然存在需要完善的地方,不過(guò)我們堅(jiān)信當(dāng)前你看到的幫助信息是精確無(wú)誤的,后續(xù)我們會(huì)提供更多的指導(dǎo)信息來(lái)完善幫助文檔。
1.WebDriver介紹
Selenium2.0主要的新特性是集成了WebDriverAPI。我們?cè)O(shè)計(jì)WebDriver的初衷是提供更加簡(jiǎn)單明了的接口來(lái)彌補(bǔ)Selenium-RCAPI的不足。在動(dòng)態(tài)網(wǎng)頁(yè)中,通常只會(huì)更新局部的html元素,WebDriver會(huì)很好的幫助用戶快速定位這些元素。我們終的目的是通過(guò)提供精心設(shè)計(jì)的面向?qū)ο驛PI來(lái)解決現(xiàn)代高級(jí)網(wǎng)頁(yè)中的測(cè)試難題。
2.WebDriver如何驅(qū)動(dòng)瀏覽器?與Selenium-RC有什么區(qū)別?
不同類型的瀏覽器都會(huì)有原生的接口支持自動(dòng)化操作,Selenium通過(guò)這些接口直接向?yàn)g覽器發(fā)送指令。如何發(fā)送這些指令取決于你當(dāng)前使用的瀏覽器類型,我們將在這一章節(jié)后面來(lái)詳細(xì)介紹。
看上去WebDriver與之前Selenium-RC的實(shí)現(xiàn)方式類似,實(shí)際上兩者之間存在著本質(zhì)的區(qū)別。對(duì)于所有類型的瀏覽器Selenium-RC都是使用的同一種方法:當(dāng)瀏覽器啟動(dòng)時(shí),向其中注入javascript,從而使用這些js來(lái)驅(qū)動(dòng)瀏覽器中的AUT(ApplicationUnderTest)。WebDriver并沒(méi)有使用這種技術(shù),它是通過(guò)調(diào)用瀏覽器原生的自動(dòng)化API直接驅(qū)動(dòng)瀏覽器。
3.WebDriver與SeleniumServer
是否需要是用SeleniumServer取決于你使用WebDriver的方式。以下兩種情況不需要使用SeleniumServer,WebDriver直接運(yùn)行瀏覽器即可:1、testcases僅僅使用了Webdriver的API;2、瀏覽器和testcase在同一臺(tái)PC上,而且testcases僅僅使用了Webdriver的API。
以下三種情況你需要結(jié)合SeleniumServer來(lái)使用WebDriver:
1)使用Selenium-Grid管理集群環(huán)境(或者虛擬機(jī))上的testcase;
2)需要調(diào)用非本機(jī)上的不同版本的瀏覽器;
3)未使用任何languagebinding(java/c#/python/ruby),且有意向使用HtmlUnitDriver。
4.配置Selenium-WebDriver工程
安裝Selenium是指在開(kāi)發(fā)環(huán)境上配置一個(gè)工程,然后可以在這個(gè)工程中用Selenium編寫(xiě)程序。如何配置取決于你使用的開(kāi)發(fā)語(yǔ)言和編程環(huán)境。
使用Maven是配置一個(gè)Selenium2.0java工程簡(jiǎn)單的方式。Maven會(huì)下載所有javabingdings以及所有相關(guān)的庫(kù)(theSelenium2.0javaclientlibrary)。通過(guò)使用pom.xml(maven配置文件)來(lái)新建工程,你可以根據(jù)自己的喜好將Maven工程導(dǎo)入IntelliJIDEA或者Eclipse。
首先,創(chuàng)建一個(gè)文件夾存放Maven工程文件。然后,創(chuàng)建pom.xml,你可以使用texteditor來(lái)編輯。鑒于已經(jīng)有很多關(guān)于“如何在Maven工程中使用pom.xml”的參考文獻(xiàn),這里將不再過(guò)多的討論相關(guān)細(xì)節(jié)。下面給出一個(gè)示例,為你的工程也創(chuàng)建一個(gè)類似的文件。
<?xmlversion="1.0"encoding="UTF-8"?>
<projectxmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>MySel20Proj</groupId>
<artifactId>MySel20Proj</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.38.0</version>
</dependency>
<dependency>
<groupId>com.opera</groupId>
<artifactId>operadriver</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.opera</groupId>
<artifactId>operadriver</artifactId>
<version>1.5</version>
<exclusions>
<exclusion>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencyManagement>
</project>