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

您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
利用Selenium自動化web測試
作者:網絡轉載 發布時間:[ 2016/6/15 16:19:26 ] 推薦標簽:Selenium 功能測試 自動化測試

  如果知道 ID 或名稱之外的一個屬性,那么直接使用 @attribute=value 定位元素。
  如果只知道屬性值的一些特定部分,那么使用 contains(attribute, value) 定位元素。
  如果元素沒有指定的屬性,那么利用 Firebug 搜索近的具有指定屬性的父元素,然后使用 Xpath 從這個元素開始定位想要找到的那個元素。
  表 1. 定位元素的 Xpath 表達式
  定位元素 Xpath 表達式
  n 行的第一列 //table[@id='test_table']//tr[n]/td
  n 行的圖像 //table[@id='test_table']//tr[n]//img
  ‘Test 1’ 的編輯鏈接 //a[contains(@href,test1)]
  表 1 展示了定位元素的 Xpath 表達式。在 Firebug 的幫助下,Xpath 可以定位元素和復制的元素。在元素沒有 ID 和名稱時,Selenium IDE 將會采用 Xpath。盡管 Xpath 利用已經錄的腳本,有助于保持一致性,但是它高度依賴于 web 頁面的結構。這使得測試用例可讀性差,增加了維護難度。此外,在 Internet Explorer 7 和 Internet Explorer 8 中運行具有多個復雜 Xpath 表達式的測試用例可能會太慢了。在這種情況下,將 Xpath 更換為 DOM,后者是另一種高效的定位策略。
  DOM 是 Document Object Model(文檔對象模型)的縮寫。Selenium 允許您利用 JavaScript 遍歷 HTML DOM。Java 的靈活性允許在 DOM 表達式中有多個語句,用分號隔開,以及在語句中定義函數。
  表 2. 定位元素的 DOM 表達式
  定位元素 DOM 表達式
  n 行的第一列 dom=document.getElementById('test_table').rows[n-1].cells[0]
  n 行的圖像 dom=element=document.getElementById('test_table').rows[n-1].cells[1]; element.getElementsByTagName('IMG')[0]
  ‘Test 1’ 的編輯鏈接 
  dom=function test(){
  var array=document.getElementsByTagName('a');
  var element;for(var i=0; i<array.length; i++)
  {if(array[i].attributes.getNamedItem("href").
  value.indexOf('test2')!=-1){element=array[i];break;}}return element}; test()
  表 2 展示了定位元素的 DOM 表達式。DOM 定位器在 Firefox 和 Internet Explorer 中也有很好的性能。組織 DOM 表達式需要一些 JavaScript 知識。有時,DOM 表達式對于復雜的元素來說太長了,難以看懂(參見表 2 中提到的 Test 1 的編輯鏈接的表達式)。
  CSS 定位器用于利用 CSS 選擇器選擇元素。當 HTML 代碼具有良好的樣式時,可以高效地利用 CSS 定位器。樣例表達式展示在表 3 中。
  表 3. 定位元素的 CSS 表達式
  定位元素 CSS 表達式
  n 行的第一列 css=#test_table .test_class:nth-child(n)
  n 行的圖像 
  css=#test_table  tr:nth-child(n) > td:nth-child(2) >
  table td:nth-child(1) > div >  img
  ‘Test 1’ 的編輯鏈接 css=a[href*='test2']
  一般來說,選用熟悉的定位器表達式,并在腳本結構中保持一致。如果有多種表達式可執行,那么使用高效的方式在 web 頁面中定位元素。
  如何處理彈出窗口
  一般來說,操作都是在由 Selenium 啟動的主窗口中執行。如果您想在一個由 window.open 函數生成的新窗口中執行操作,那么將焦點更換到新窗口。在彈出窗口中執行操作之后,焦點返回到主窗口。處理彈出窗口的過程定義在清單 12 中。
  清單 12. 處理彈出窗口的樣例代碼
  //wait for the popup window with timeout;
  selenium.waitForPopUp(windowname, timeout);
  //select the pop up window
  selenium.selectWindow(popupWindowIdentifier);
  //perform action on popup window and close the window;
  ....
  //return to the main window use 'null'
  selenium.selectWindow(null);
  windowname 是調用 window.open 函數的第二個參數。上面提到的 popupwindowIdentifier 是一個窗口標識符,可以是窗口 ID、窗口名稱、title=the title of the window 或 var=javascript variable。如果彈出窗口的屬性未知,但是真的定義了,那么使用 getAllWindowIds()、getAllWindowNames() 或 getAttributeFromAllWindows() 函數來檢索彈出窗口的屬性。
  在新版的 Selenium RC 1.0.1 中,Selenium 添加了像 selectPopUp(String) 和 deselectPopUp() 這樣的方法,它們的功能在以前版本中由 selectWindow(String) 提供。
  清單 13. 處理彈出窗口的彈出函數
  //wait for the popup window with timeout;
  selenium.waitForPopUp(“”, timeout);
  //same as selenium.selectWindow
  selenium.selectPopUp(“”);
  //perform action on popup window and close the window;
  ....
  //same as selenium.selectWindow(null);
  selenium.deselectPopUp();
  清單 13 展示了處理彈出窗口簡單的方式。您可以保留 waitForPopUp 和 selectPopUp 函數中的第一個參數為空。如果同時彈出多個窗口,請指定窗口屬性。
  如何處理上載/下載文件窗口
  Selenium 使用 JavaScript 來模擬操作。因此,它不支持諸如上載窗口、下載窗口或身份認證窗口之類的瀏覽器元素。對于非主要窗口,配置瀏覽器跳過彈出窗口。
  圖 7. 安全信息窗口

  展示 Security Information 彈出窗口的屏幕快照,指出頁面包含安全的和不安全的條目
  跳過圖 7 中安全信息窗口的解決方案是打開 Tools > Internet Options > Custom Level。然后啟用 Display mixed content。
  配置 Internet Explorer 跳過非主要窗口會減少或消除運行測試用例時不必要的處理。但是如果配置了 Firefox,那么將它保存為新的配置文件,并利用定制的配置文件啟動服務器。在關于測試 HTTPS 網站的一節中提到了這樣做的原因。

上一頁12345下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 美女羞羞免费网站 | 免费观看性欧美大片无片纯爱 | 永久免费视频网站在线观看 | 18av黄动漫网站在线观看 | 大学生高清一级毛片免费 | japanese黑人高清| 婷婷国产天堂久久综合五月 | 理论毛片| 国产丝袜在线视频 | 国产日韩欧美精品在线 | 被黄漫网站视频在线观看 | 91福利一区二区在线观看 | 韩国伦理片在线免费观看 | 九九九九九九伊人 | 亚洲欧美网 | 国产丶欧美丶日韩丶不卡影视 | 黄色福利小视频 | 在线看福利片 | 噜噜噜狠狠夜夜躁 | 毛片免费在线播放 | 91老司机精品视频 | www.人人| 免费看黄色片 | 欧美亚洲高清日韩成人 | 日韩欧美一区二区三区久久 | 欧美日韩三级在线 | 最近高清中文字幕2019 | 99网站在线观看 | 羞羞网站在线看 | aaa在线观看高清免费 | 亚洲欧美日韩在线不卡 | 在线观看丝袜国产 | 插菊花综合1| 欧美高清精品 | 在线看污视频网站 | 免费看黄色一级毛片 | 国产在线精品一区二区中文 | 午夜成私人影院在线观看 | 伊人天堂在线 | 欧美成一级 | 一级特黄aa大片免费 |