• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Selenium測試Ajax程序(2)

    發表于:2012-08-13來源:博客園作者:Jack_wangds點擊數: 標簽:selenium
    b. 準備后臺程序,把下面的代碼加入HomeController. ? 1 2 3 4 5 public ContentResult GetAjaxContent() { Thread.Sleep(9000); return new ContentResult { Content = Hello World }; } c. 效果 當我

      b. 準備后臺程序,把下面的代碼加入HomeController.

      ?

    1
    2
    3
    4
    5
    public ContentResult GetAjaxContent()
    {
       Thread.Sleep(9000);
       return new ContentResult { Content = "Hello World" };
    }
    c. 效果 當我們點擊Get時,頁面出現Hello World。
    image

      使用Selenium進行Ajax測試

      如果你沒用個Selenium,請參考我的這篇文章Web測試:Selenium使用

      如果我們點擊Get按鈕后,直接判斷頁面是否返回”Hello World”時,這樣會出錯,因為現在還沒有立即返回。

      這時我們就需要使用Selenium的WaitForCondition方法,這個方法會不停的去判斷一個javascript表達式是否是true. 知道返回true時才繼續執行。

    image

      我們可以看到,我們需要寫js表達式,如果我們需要判斷的很復雜,那么些表達式也是一件很麻煩的事,同時這個方法經過我的使用,它對IE的支持不好。那么有沒有更好的方法呢?

      更好的方法判斷Ajax調用是否結束

      事實上我們測試Ajax程序最大的麻煩,就是想上面一樣來判斷Ajax調用是否結束,上面我們是判斷頁面中如果出現”Hello World”,證明Ajax已經結束了,那么什么是更好的方法呢,我們經常使用的javascript的類庫是JQuery,如何判斷JQuery的Ajax調用已經結束了呢?

      經過研究發現當沒有ajax調用時,Jquery.active=0.

      所以,我們可以使用這個萬能的表達式判斷Ajax是否返回。

      selenium.WaitForCondition("selenium.browserbot.getCurrentWindow().jQuery.active == 0", "50000");

    image

      是不是整個世界清靜多了

    image

      下面我收集了判斷其它類庫的Ajax活動狀態

      jQuery: “jQuery.active”

      Prototype: “Ajax.activeRequestCount”

      Dojo: “dojo.io.XMLHTTPTransport.inFlight.length”

      ASP.NET AJAX:

      Javascript:

      function isInAsyncPostBack() {

      instance = Sys.WebForms.PageRequestManager.getInstance();

      return instance.get_isInAsyncPostBack();

      }

      C#

      selenium.WaitForCondition(“!selenium.browserbot.getCurrentWindow().isInAsyncPostBack()”, “1000″);

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>