【问题标题】:It doesn't seem that Watir.default_timeout works when I use it in my rspec test当我在 rspec 测试中使用 Watir.default_timeout 时,它似乎不起作用
【发布时间】:2019-02-15 22:01:54
【问题描述】:

我需要延长 @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

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

谢谢

【问题讨论】:

    标签: rspec watir


    【解决方案1】:

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

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

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

    【讨论】:

    • 脚本超时的最大值是多少?
    • 我无法让它成功运行。 @browser = Watir::Browser.new(:chrome, timeouts: { script: 60_000 }, options: @opts) 这就是我在代码中实现建议的方式,它仍然在 30 秒内超时。对此的任何想法将不胜感激。
    • 这里是关于我看到的错误的更多信息。 Selenium::WebDriver::Error::ScriptTimeOutError:脚本超时:30 秒内未收到结果(会话信息:chrome=72.0.3626.119)(驱动程序信息:chromedriver=2.42.591059(a3d9684d10d61aa0c45f6723b327283be1ebaad8),平台=Mac OS X 10.14 .3 x86_64) 我看了又看,找不到答案。
    【解决方案2】:

    我已将以下内容添加到我的代码中,它现在正在运行。

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

    已记录 Watir 解决方案的问题。

    感谢您的帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-28
      • 2019-06-25
      • 1970-01-01
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-11
      相关资源
      最近更新 更多