Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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
Javascript 如何验证js弹出窗口中的regexp值何时在capybara/cucumber中可见_Javascript_Jquery_Ruby_Cucumber_Capybara - Fatal编程技术网

Javascript 如何验证js弹出窗口中的regexp值何时在capybara/cucumber中可见

Javascript 如何验证js弹出窗口中的regexp值何时在capybara/cucumber中可见,javascript,jquery,ruby,cucumber,capybara,Javascript,Jquery,Ruby,Cucumber,Capybara,我正在自动化一个功能,其中弹出对话框启动一个审计,显示页面值0作为状态,但随后该值变为非零值。当非零值出现时,我需要验证它,以便单击ok按钮并继续该过程。在水豚中没有等待时间。所以水豚测试需要“等待”直到我的正则表达式变为真。我尝试了几个选择,这是我最后一个选择,但失败了。使用“睡眠”不是正确的方法 find(:xpath, '//*[@id="pageKeywords"]', :text => /"[1-9][1-9]" pages processed/).should be_visib

我正在自动化一个功能,其中弹出对话框启动一个审计,显示页面值0作为状态,但随后该值变为非零值。当非零值出现时,我需要验证它,以便单击ok按钮并继续该过程。在水豚中没有等待时间。所以水豚测试需要“等待”直到我的正则表达式变为真。我尝试了几个选择,这是我最后一个选择,但失败了。使用“睡眠”不是正确的方法

find(:xpath, '//*[@id="pageKeywords"]', :text => /"[1-9][1-9]" pages processed/).should be_visible

但这并没有起到作用,因为测试在“处理0个页面”上查找审计并失败。我该怎么做呢?

Capybara试图自己做这件事,但我猜审计所花的时间比Capybara准备等待的时间要长。假设您的规范设置了以下方面的期望:

expect(page).to have_css('#pageKeywords', text: %r{"[1-9][1-9]" pages processed}, visible: true)
水豚会等待一段时间,让这一切发生。该方法通过在
Capybara.default\u wait\u time
中指定的秒数内捕获
Capybara::ElementNotFound
异常来处理此问题。但是,您可以通过将您的期望作为一个块传递给
水豚来允许水豚等待更长的时间

Capybara.with_wait_time(30) do
  expect(page).to have_css('#pageKeywords', text: %r{"[1-9][1-9]" pages processed}, visible: true)
end 

轰!现在,水豚将等待30秒,然后放弃满足期望。

看看xpath有一个
fn:matches
see以允许regrex比较。也许你可以用这个。谢谢。我试试这个。