我需要延长对 @ 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
我环顾四周,似乎找不到一个好的答案。任何帮助将不胜感激。
谢谢
答案 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解决方案已记录问题。
谢谢您的帮助。