使用WebDriver遇到的那些坑(3)

發表于:2014-07-16來源:DiggerPlus作者:陳永達點擊數: 標簽:WebDriver
以此類推,我們可以判斷某個元素是否呈現、某個class是否append成功等一系列方法來判斷ajax是否執行完成。 如果網站使用了JQuery的動畫效果,我們在運行

  以此類推,我們可以判斷某個元素是否呈現、某個class是否append成功等一系列方法來判斷ajax是否執行完成。

  如果網站使用了JQuery的動畫效果,我們在運行測試的時候其實可以disable JQuery的animation,一方面可以加快測試的速度,另一方面可以加強測試的穩定性(如果啟用了Animation,使用WebDriver驅動瀏覽器時可能會出現一些無法預料的異常)。

1
((JavascriptExecutor)driver).executeScript("jQuery.fx.off=true");

  由于WebDriver要驅動瀏覽器,所以測試運行的時間比較長,我們可以并行跑測試以節省時間。如果你使用的是maven構建工具,可以配置surefire plugin時,在configruation節點加入以下配置。(網易Dagger框架支持的做法)

1
2
3
<parallel>classes</parallel>
<threadCount>3</threadCount>
<perCoreThreadCount>false</perCoreThreadCount>

  當測試fail的時候,如果當前使用的WebDriver實現了TakesScreenshot接口,我們就可以調用相應的方法截下當前瀏覽器呈現的web頁面,這樣有利于快速定位出錯的原因。

1
2
3
4
5
6
public void getScreenShot() {
        if (webDriver instanceof TakesScreenshot) {
            TakesScreenshot screenshotTaker = (TakesScreenshot) webDriver;
            File file = screenshotTaker.getScreenshotAs(savePath);
        }
    }

  如果頁面彈出了瀏覽器自帶的警告框(使用JavaScript的Alert方法),Selenium WebDriver在點選次警告框時會偶發性失敗。具體原因還未查明。解決方案是盡量不使用Alert方法的警告框,而是自己實現模式窗口(比如 Jquery UI的模式窗口)來實現警告框效果。這樣即保證了測試的穩定性,另外我們自己可以控制警告框的樣式,給用戶帶來更好的體驗。

  經常更新Selenium的版本。注意經常上Selenium的官網看是否發布了新的版本,新的版本都修復了那些bug,如果包含你遇到的bug,就可以升級到目前的版本。

 

原文轉自:http://www.huangbowen.net/blog/2013/06/25/practice-of-webdriver/

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97