Capybara Ruby Selenium Web驱动程序检查对话框不存在
该代码用于检查对话框“存在”是否为: 问题是,当我使用以下内容时:Capybara Ruby Selenium Web驱动程序检查对话框不存在,ruby,selenium,Ruby,Selenium,该代码用于检查对话框“存在”是否为: 问题是,当我使用以下内容时: if (on(ImportErrorDialog).loaded?) 如果对话框不存在,代码将暂停约1分钟,然后继续(但工作正常)。我需要它返回的速度要快得多,但我不知道它是从哪里得到超时的。它不是Capybara.default\u wait\u time(我们将其设置为“2”) 有什么想法吗 像这样的怎么样 def loaded? begin result = @window.displayed?
if (on(ImportErrorDialog).loaded?)
如果对话框不存在,代码将暂停约1分钟,然后继续(但工作正常)。我需要它返回的速度要快得多,但我不知道它是从哪里得到超时的。它不是Capybara.default\u wait\u time
(我们将其设置为“2”)
有什么想法吗 像这样的怎么样
def loaded?
begin
result = @window.displayed?
rescue
result = false
end
result
end
您是否尝试过使用隐式等待?您可以将其放入返回@window
的代码中,修改find\u元素以查找对话框
wait = Selenium::WebDriver::Wait.new(:timeout => 10)
wait.until { driver.find_element(:id => "some-dynamic-element") }
谢谢你,理查德。我尝试了你的代码,同样的事情也发生了。当窗口不存在时,测试在@window.display?上暂停约一分钟。
wait = Selenium::WebDriver::Wait.new(:timeout => 10)
wait.until { driver.find_element(:id => "some-dynamic-element") }