目前,要等待三个不同的元素,我三次调用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
答案 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