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