Watir :: Wait.until方法可以等待多个元素

时间:2014-10-16 11:08:05

标签: cucumber watir-webdriver

目前,要等待三个不同的元素,我三次调用Watir :: Wait.until方法:

def wait
  Watir::Wait.until {@browser.text_field(:css => '.inputtext').exists?}
  Watir::Wait.until {@browser.text_field(:css=> '.inputpassword').exists?}
  Watir::Wait.until {@browser.button(:css => 'input#u_0_1').exists?}
end

是否可以进行一次等待所有三个元素的until方法调用?例如,像:

def wait 
  Watir::Wait.until {@browser.text_field(:css => '.inputtext').exists?,
    @browser.button(:css => 'input#u_0_1').exists?,
    @browser.text_field(:css=> '.inputpassword').exists?}
end

1 个答案:

答案 0 :(得分:1)

until方法将一直等到块的最后一个表达式(花括号)计算为true。因此,您只需将所有检查加入单个表达式。这可以通过&&and||or来完成。

鉴于您希望所有检查都评估为true,请使用&&and也可以):

def wait 
  Watir::Wait.until {
    @browser.text_field(:css => '.inputtext').exists? &&
    @browser.button(:css => 'input#u_0_1').exists? &&
    @browser.text_field(:css=> '.inputpassword').exists?
  }
end