亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-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
主站蜘蛛池模板: 日本乱人伦片中文三区 | 亚洲欧美日韩国产精品久久 | 97干婷婷| 欧美亚洲精品在线 | 亚洲地址一地址二地址三 | 一区二区三区福利视频 | 欧美综合成人网 | 最新国产一区二区精品久久 | 国产黄大片在线观看视频 | 中国性hd| 欧美一级日韩一级亚洲一级va | 亚洲国产成人久久一区www | 国产精品21区 | 在线永久免费观看黄网站 | 精品一区久久 | 成人小视频在线观看免费 | 日日狠狠太爽爽 | 亚洲精品456在在线播放 | 在线观看欧美日韩 | 黄网站免费在线 | 欧美亚洲视频在线观看 | 黄色网久久 | 老色网站| 国产午夜不卡 | 精品欧美中国福利第一导航 | 乱人伦视频69 | 国产一区精品 | 手机在线精品视频每日更新 | 国产满18av精品免费观看视频 | 一级录像免费录像 | 九九九网站 | 成年人深夜福利 | 久久久国产亚洲精品 | 久久网伊人 | a成人毛片免费观看 | 欧美中文在线观看 | 羞羞的视频在线免费观看 | 欧美大片xxxxbbbb | 五月天伊人网 | 久久精品国产波多野结衣 | 久久国产精品久久精 |