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

來源:互聯網
上載者:User

標籤: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自動化測試方案與實施(五)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.