Watir WebDriver的wait应用

上一篇 / 下一篇  2013-01-27 15:59:00 / 个人分类:测试

watir提供的wait方法有:

Watir::Wait.until { ... }:  
等待你指定的block出现变为true

object.when_present.set:    
当对象出现时,你可以做点你set的什么

object.wait_until_present:  
纯粹的等待对象的出现,什么都不干

object.wait_while_present:
纯的等待直到对象消失


对于动态页面来说,尤其是有很多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,要一直等到规定的时间超时才进行下一步。

TAG:

 

评分:0

我来说两句

日历

« 2024-05-04  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 151715
  • 日志数: 185
  • 文件数: 6
  • 建立时间: 2007-08-06
  • 更新时间: 2015-01-06

RSS订阅

Open Toolbar