2014-10-16 17 views
0

目前,等待三個不同的元素,我調用的Watir :: Wait.until方法三次:的的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

until方法將等待,直到塊,這是大括號,計算結果爲true的最後一個表達式。因此,您只需將所有檢查合併到一個表達式中即可。這可以通過使用&&,and,||or來完成。

既然你希望所有的檢查,以評估爲真,使用&&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