您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Watir
Watir WebDriver的wait應用
作者:網絡轉載 發(fā)布時間:[ 2014/1/13 9:56:56 ] 推薦標簽:Watir WebDriver

watir提供的wait方法有:

Watir::Wait.until { ... }: 
等待你指定的block出現(xiàn)變?yōu)閠rue

object.when_present.set:   
當對象出現(xiàn)時,你可以做點你set的什么

object.wait_until_present: 
純粹的等待對象的出現(xiàn),什么都不干

object.wait_while_present:
純的等待直到對象消失


對于動態(tài)頁面來說,尤其是有很多Ajax代碼的頁面,需要使用wait來進行等待,但是watir的wait是等待頁面完成之后結束了,實際上Ajax很多代碼要在頁面load之后還在加載,這樣的話,導致等待無效,真正有效的是Wait_while_present

我們可以自己添加一個簡單的方法進行處理:

def wait_for_ajax
  browser.div(:id, 'ajax-loader').wait_while_present
end

默認的等待時間是30秒,你可以通過參數去設定時間長度:

b.select_list(:id => 'entry_1').wait_until_present(100)
等待一百秒

下面是一些簡單的例子

require 'watir-webdriver'
b = Watir::Browser.start 'bit.ly/watir-webdriver-demo'
b.select_list(:id => 'entry_1').wait_until_present
b.text_field(:id => 'entry_0').when_present.set 'your name'
b.button(:value => 'Submit').click
b.button(:value => 'Submit').wait_while_present
Watir::Wait.until { b.text.include? 'Thank you' }


你甚至可以使用 Implicit waits 來設置長的等待時間,例如:
require 'watir-webdriver'
b = Watir::Browser.new
b.driver.manage.timeouts.implicit_wait = 3 #3 seconds

implicit wait的長的等待時間意味著3秒之內,只要找到對象,不再等待,直接進入下一步,而wait,要一直等到規(guī)定的時間超時才進行下一步。

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd