Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Capybara Ruby Selenium Web驱动程序检查对话框不存在_Ruby_Selenium - Fatal编程技术网

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") }