2014-02-25 44 views
0
檢查

的代碼是用於檢查對話框中的「存在」是:水豚紅寶石硒的webdriver的對話不存在

def loaded? 
    if @window == nil 
     result = false 
    else 
     result = @window.exists? 
    end 
    result 
end 

問題是,當我使用類似:

if (on(ImportErrorDialog).loaded?) 

和該對話框不存在,代碼在繼續之前暫停大約1分鐘(但工作正常)。我需要它比這更快地返回,但我不知道它從哪裏得到超時。這不是Capybara.default_wait_time(我們設置爲'2')。

任何想法?

回答

0

這樣的事情呢?

def loaded? 
    begin 
     result = @window.displayed? 
    rescue 
     result = false 
    end 
    result 
end 

您是否嘗試過使用隱式等待?你可以把它放在返回@window的代碼中,修改find​​_element來找到對話框。

wait = Selenium::WebDriver::Wait.new(:timeout => 10) 
wait.until { driver.find_element(:id => "some-dynamic-element") } 
+0

謝謝理查德。我試過你的代碼,並且發生了完全相同的事情。當窗口不存在時,測試在@window.display?上暫停約一分鐘。 – user3353293

相關問題