亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
Selenium自動化測試用例設計注意事項
作者:網絡轉載 發布時間:[ 2013/1/25 14:02:31 ] 推薦標簽:

  這個HTML錨標記定義了一個ID屬性為“adminHomeForm”按鈕。和大部分HTML標簽相比,這是一個相當復雜的錨標記,但它仍然是一個靜態標簽。每次頁面被瀏覽器加載時,HTML將保持不變。它的ID在所有的頁面實例里保持不變,也是說,頁面被展示時,這個UI元素總是有同樣的標識符。所以,點擊此按鈕的測試腳本(Selenium Server)如下所示:

selenium.click("adminHomeForm");

  然而,你的應用程序,可能生成動態的HTML標識符。在不同的網頁實例中,標識符發生改變。例如,一個動態的頁面的HTML元素可能會是這個樣子:

<input id="addForm:_ID74:_ID75:0:_ID79:0:checkBox" type="checkbox" name="addForm:_ID74:_ID75:0:_ID79:0:checkBox" value="true" />

  這是一個復選框,id和name屬性都是addForm:_ID74:_ID75:0:_ID79:0:checkBox。在這種情況下,使用標準的定位,測試腳本應該是這樣子的:

selenium.click("addForm:_ID74:_ID75:0:_ID79:0:checkBox");

  對于動態生成的標識符,這種做法行不通。下一次頁面加載時,標識符將是一個不同的值,執行上述腳本會遇到“element not found”錯誤。

  要更正該問題,一個簡單的解決辦法是使用XPath定位替代ID定位器。因此,對于該復選框,可以簡單地使用

selenium.click("//input");

  或者,如果它不是在頁面上的第一個文本輸入域,嘗試一個更詳細的XPath語句。

selenium.click("//input[3]");

  或

selenium.click("//div/p[2]/input[3]");

  但是,如果你確實需要使用ID來定位元素,可以換一種不同的解決方案。您可以先捕捉到網站的這個ID,然后再使用它,例如:

String[] checkboxids  = selenium.getAllFields(); // Collect all input IDs on page.
             for(String checkboxid:checkboxids) {
                    if(checkboxid.contains("addForm")) {
                selenium.click(expectedText);
            }
             }

  如果頁面上只有一個復選框的ID文本為“expectedText”時,這種方法工作。

  ● 定位Ajax元素

  定位、驗證AJAX元素的好的方式是使用Selenium 2.0 webdriver的API,它專門解決Selenium 1.0測試AJAX元素的一些限制。

  在Selenim 2.0中,可以使用waitfor()方法來等待一個頁面元素變得可用。該參數是一個WebDriver用來實現定位的By對象。這是WebDriver的章節中詳細解釋。

  在Selenium 1.0(Selenium-RC的)中,要做到這一點需要編寫更多的編碼,但它并不難。首先檢查元素,如果它存在,等待預定義的時間段,然后再重新檢查。這在循環內執行,如果超過一個預定的超時,元素不存在則終止循環。

  讓我們考慮頁面上實現AJAX效果的一個鏈接(鏈接= ajaxLink),可以使用循環處理:

// Loop initialization.
for (int second = 0;; second++) {
 
     // If loop is reached 60 seconds then break the loop.
     if (second &gt;= 60) break;
 
     // Search for element "link=ajaxLink" and if available then break loop.
     try { if (selenium.isElementPresent("link=ajaxLink")) break; } catch (Exception e) {}
 
     // Pause for 1 second.
     Thread.sleep(1000);
 
}

  這當然不是的解決辦法。Ajax是一個共同的話題,在用戶論壇上,查找一下之前的討論,看看別人是如何做的。

上一頁1234下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 亚洲欧美在线视频观看 | 国产在线播放成人免费 | 久久青草国产精品一区 | 国产亚洲欧美另类一区二区三区 | 婷婷狠狠| 色护士精品影院www 色狠狠色综合久久8狠狠色 | 日韩视频在线播放 | 欧美综合亚洲图片综合区 | 一级免费黄色录像 | 日韩精品一级毛片 | 国产精品欧美亚洲韩国日本 | 日韩精品第1页 | 精品一区二区三区影院在线午夜 | 第一福利官方导航大全 | 青草网在线观看 | 国产成在线观看免费视频成本人 | 国内精品1区1区3区4区 | 日本成日本片人免费 | 亚洲国产成人在线观看 | 欧美日韩综合视频 | 欧美一级黄色片免费看 | 精品国产一区二区在线观看 | 国产成人精品高清不卡在线 | 欧美日韩影院 | 不卡国产视频 | 日韩亚洲一区中文字幕在线 | 手机看片国产欧美日韩高清 | 国产女人视频免费观看 | 亚洲国产成人久久综合区 | 日本资源在线 | 波多野结衣久久国产精品 | 欧美色欧美亚洲高清图片 | 野花影视视频在线观看免费 | xxxx性欧美hd| 日韩一区三区 | 免费高清资源黄网站在线观看 | 五月开心久久 | 日韩综合图区 | h网站免费看 | 看黄网站在线看 | 看的免费污污网站 |