基於Ruby的watir-webdriver自動化測試方案與實施(五)


接着基於Ruby的watir-webdriver自動化測試方案與實施(四)
繼續 ... ...
關於特殊控件捕獲,異常控件分析,到頁面各種屬性的捕獲方式。
 
這節講怎么在瀏覽器頁面提取我們想要的數據作為參數,傳遞到Tools進行與數據庫/linux的數據做比對。
 
之前有很多朋友會問一些這樣的問題:
 <div class="button-div">
      <input type="hidden" name="act" value="insert">
      <input type="hidden" name="old_title" value="">
      <input type="hidden" name="id" value="">
      <input type="submit" value=" 確定 " class="button">
      <input type="reset" value=" 重置 " class="button">
    </div>

@@b.button(:name=>"button").click  怎么不行?

或者是封裝了好多層的控件怎么捕獲:

 

其實在基於Ruby的watir-webdriver自動化測試方案與實施(三)中有所介紹,這里再詳細說說。

http://www.cnblogs.com/Javame/p/4164471.html

對於這樣的控件怎么捕獲,watir-webdriver提供了兩種捕獲方式:

1.遞歸式

我們可以從父級逐步定位,例如圖片多層封裝,我們就可以從第一個div開始,

@@b.div(:class=>"").divs[3].spans[0]....

@@b.dv是父級,divs[3]是父級以下第四個div,記住watir-webdriver區別與watir,數組下標從0開始,watir是從1開始。

spans[0]是父級以下第四個div下面的第一span,就這樣一級一級往下定位。

2.xpath

xpath很簡單,chrome自身提供了xpath捕獲工具

我們只需要在代碼里使用即可,例如:

@@b.a(:xpath=>"//*[@id='blackListTable']/tbody/tr/td[4]/a").click

@@b.div(:class=>"detail").inputs[1].click

原始的xpath里面是雙引號:

//*[@id="blackListTable"]/tbody/tr/td[4]/a 

注意一點,雙引號里面包着單引號,單引號里面包着雙引號,這個是定律!

特殊控件與異常行為講完了,再來談談頁面元素捕獲的問題。

比如說我們博客園首頁

我想提取出“找找看”這三個字,怎么解決?

其實watir-webdriver提供了“.text”執行事件,看代碼:

案例一:

d = b.div :class => 'ss-form-desc ss-no-ignore-whitespace'
puts
d.text

案例二:

a = b.a(:xpath=>"//*[@id='blackListTable']/tbody/tr/td[4]/a").text
puts a

案例三:

Value = ie.link(:id=>’xxx’).attribute_value(“href”)

PS一個小心得:

在很多情況下,一些控件是隱藏的,需要促發某些事件才會顯示,例如:

該刪除按鈕就是需要觸發鼠標點擊或移動事件才會顯示,如果沒有觸發ruby將會提示異常錯誤。

根據以上信息,我們可以這么設計實現:

#模擬鼠標在改div上點擊一下,不就可以觸發刪除控件了嗎...
b.div(:class=>"detail").inputs[1].click #點擊刪除 b.button(:class=>"deleteBtn").click

o(∩_∩)o 哈哈,是不是開始覺得自動化寫起來也開始有些簡單了呢...

 



 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM