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

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

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    自己動手寫Web自動化測試框架5 - 判斷瀏覽器是否加載完成

    發布: 2010-6-30 10:40 | 作者: 不詳 | 來源: 領測測試網采編 | 查看: 182次 | 進入軟件測試論壇討論

    領測軟件測試網

      自己動手寫Web自動化測試框架5 - 判斷瀏覽器是否加載完成  軟件測試

      上面的幾次課程中,我們介紹了如何打開瀏覽器,如何獲取每個web控件的信息,并且控制并驗證他們。

      從上面的文章中,我相信大家已經可以寫出簡單的測試程序了。但是還有一個很重要的問題沒有解決:如何判斷瀏覽器是否加載完成?

      前面的文章我們沒有對瀏覽器的加載進行判斷,而只是簡簡單單的等一段時間,這不是一個很好的解決方法,一方面浪費了時間,另一方面,我們也無法知道應該等多久,導致我們的測試程序不夠穩定。

      接下來我們假設被測網頁沒有Ajax和框架,以這種情況來分析如何判斷網頁加載完畢。

      現在比較常用判斷是否加載的方法有三種:

      不停判斷IE的狀態,如果沒有準備好就等待。

      實現IE的DocumentComplete事件,標志完成。

      不停去查找頁面有沒有我們想要控件,沒有就等待。

      第一種方法:不停判斷IE的狀態,我們要判斷IE的哪些狀態呢?

      一方面,我們需要判斷IE的Busy狀態,看IE是不是在忙著解析東西,另一方面判斷IE的ReadyState狀態,看html文檔是不是被完全加載進來。

    MILY: 新宋體">

    while(ie.Busy || ie.ReadyState !=tagREADYSTATE.READYSTATE_COMPLETE)
    {
      Thread.Sleep(100);
    }

      用如上的代碼就可以等待IE到完成。

     

    這里只是簡簡單單的Demo,所以用了很簡單的預計進行判斷,我們假設我們的網頁沒有Ajax,也不會出現Load的死鎖,真正的實際工作要比這個復雜一些,比如要定一個Time out,如果除了Timeout的范圍,就強行終止,以防止測試過程中的死鎖。

    而如何判斷Ajax是否被加載完,不是我們這個系列的討論范圍,請關注以后的其他系列文章。

      這種方法是我比較推薦的一種方法,雖然《.net軟件測試自動化之道》推薦的是第二種方法,不過我經過實際的測試,推薦第一種方法。這個方法可以比較好的處理Navigate、Submit等情況,也是WatiN使用的方法(WatiN的用法要復雜很多,考慮到了Frame等其他情況)。

      第二種方法:通過綁定DocumentComplete,用AutoResetEvent來等待。

      InternetExplorer給我們提供了DocumentComplete事件,會在IE被Load之后被調用,我們可以使用這個來等待。等待方法就是使用System.Threading.AutoResetEvent對象來。

      所以我們需要做的是:

      聲明一個AutoResetEvent對象的實例,因為要在兩個方法直接調用,所以需要放到類的成員變量。

      在InternatExplorer被獲取之后,綁定DocumentComplete事件。

      在DocumentComplete事件中,調用AutoResetEvent.set()方法。

      在等待頁面加載的時候調用AutoResetEvent.WaitOne()方法

      下面是源代碼:

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: web Web WEB 加載 框架 瀏覽器 自動化

    21/212>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品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>