前陣子因?yàn)橐M(jìn)行支持多瀏覽器的自動(dòng)化測(cè)試,原來selenium1.0僅支持到firefox3.6,IE8,chrome4的版本,而公司GA數(shù)據(jù)顯示用戶多使用IE9,F(xiàn)irefox20,chrome26,很顯然selenium1.0已不再滿足當(dāng)前也業(yè)務(wù)需求,為了更好進(jìn)行兼容性測(cè)試,升級(jí)selenium已經(jīng)迫在眉睫。(PS.這篇文章重點(diǎn)講的是selenium1.0升級(jí)到2.0的內(nèi)容,關(guān)于如何使用selenium開展自動(dòng)化測(cè)試不是本文的范疇,大家可以去網(wǎng)上找一下,有很多這方面的資料)
因?yàn)槲覀兪褂玫氖?a href="javascript:;" onClick="javascript:tagshow(event, 'JAVA');" target="_self">JAVA+TestNG+Maven+Selenium自動(dòng)化測(cè)試框架,以下內(nèi)容均是基于該框架進(jìn)行的闡述。
1. 修改dependency
把Pom.xml文件中的dependency進(jìn)行修改:
<dependency>
<groupId>com.thoughtworks</groupId>
<artifactId>selenium-java-client-driver</artifactId>
<version>2.25.0</version>
</dependency>
變?yōu)椋?/p>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>2.31.0</version>
</dependency>
然后編譯即可下載對(duì)應(yīng)的jar包。
2. 創(chuàng)建WebDriver實(shí)例
1.0中直接通過一個(gè)方法創(chuàng)建實(shí)例,參數(shù)可以定義static變量傳入。
public static Selenium createInstance()
{
instance = new SeleniumInstance(SELENIUM_SERVER,
SELENIUM_SERVER_PORT, BROWSER, DEFAULT_URL);
return instance;
}
2.0中因?yàn)镮E及chrome的特殊性,可以在googlecode上下載對(duì)應(yīng)的文件到本地磁盤,然后引入chromedriver及IEDriverServer的路徑,這里說明下:
1) webdriver對(duì)firefox瀏覽器支持的比較好,從工作實(shí)踐來看沒有多少棘手的問題;
2) 對(duì)chrome的支持其實(shí)是Chromium項(xiàng)目自己支持和維護(hù)的,需要額外下載對(duì)應(yīng)的standalone server以實(shí)現(xiàn)webdriver的通路協(xié)議,以支持webdriver;
3)而IEDriverService.exe是webdriver驅(qū)動(dòng)IE瀏覽器的代理器,也是做webdriver驅(qū)動(dòng)IE做相應(yīng)的動(dòng)作時(shí),都需要通過IEDriverServer.exe來通知IE,本質(zhì)上IEDriverServer.exe是對(duì)IE實(shí)現(xiàn)的DOM接口進(jìn)行了二次封裝;
4)以下代碼中因?yàn)閟afari需要真實(shí)運(yùn)行于MAC系統(tǒng)下,所以通過Grid來執(zhí)行,關(guān)于grid也可以網(wǎng)上去找找相關(guān)資料。