在rspec测试中使用Watir.default_timeout似乎不起作用

时间:2019-02-15 22:01:54

标签: rspec watir

我需要延长对 @ page.run_asset 的等待时间,因为该过程可能需要30秒以上的时间才能完成。所以我找到了Watir.default_time并将其添加到我的代码中。当我运行测试时,它仍然失败并显示与以前相同的错误:

  

失败/错误:@ page.run_asset        Selenium :: WebDriver :: Error :: ScriptTimeOutError:          脚本超时:30秒内未收到结果

it 'expects table action to succeed' do
  Watir.default_timeout = 180
  @page.debug_asset(table_name)
  @page.select_sample(sample)
  @page.run_asset
  expect(@page.return_to_input_element.present?).to be true
end

我尝试实现以下代码,但显示了相同的错误。

it 'expects table action to succeed' do
  wait = Selenium::WebDriver::Wait.new(timeout: 150)
  @page.debug_asset(table_name)
  @page.run_asset
  field_displayed = wait.until { 
  @asset_debugger_page.return_to_input_element.present? }
  expect(@page.return_to_input_element.present?).to be true
end

我环顾四周,似乎找不到一个好的答案。任何帮助将不胜感激。

谢谢

2 个答案:

答案 0 :(得分:1)

Watir超时时间是Watir将等待元素显示或显示的时间,而不是等待页面加载,脚本执行或网络读取的时间。您想在功能中设置script timeout

这是增加Watir中脚本超时的方法:

browser = Watir::Browser.new(:chrome, timeouts: {script: 60000})

答案 1 :(得分:0)

我已经在代码中添加了以下内容,并且现在可以正常工作。

browser.driver.manage.timeouts.script_timeout = 150_000

Watir解决方案已记录问题。

谢谢您的帮助。