標籤:des style blog http ar color 使用 sp for
接著基於Ruby的watir-webdriver自動化測試方案與實施(四)http://www.cnblogs.com/Javame/p/4164570.html繼續 ... ...關於特殊控制項捕獲,異常控制項分析,到頁面各種屬性的捕獲方式。 這節講怎麼在瀏覽器頁面提取我們想要的資料作為參數,傳遞到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").textputs 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 哈哈,是不是開始覺得自動化寫起來也開始有些簡單了呢...
接著基於Ruby的watir-webdriver自動化測試方案與實施(五)