我在等待表元素出现时出现超时错误,其中包含在黄瓜测试场景的前面步骤中执行的查询结果。关于这个错误的奇怪之处在于,它只在第一次运行测试时发生(在debian Linux命令shell中),但之后每次后续测试运行都会成功(即wait_until_present调用不会超时)。如果我不重新运行测试30分钟,然后尝试在同一个命令shell中再次运行它,则会重现该问题,但之后每次运行都会成功。请参阅下面的黄瓜测试脚本结果如下
以下是运行的代码我单击“查询”按钮步骤
def click_query_button
@browser.button(:text => "Query").click
@browser.div(:class => "xtb-text").wait_until_present
begin
@browser.table(:class => "x-grid3-row-table").wait_until_present
rescue
@browser.screenshot.save 'query_button_result_table_fail.png'
puts "Results table exists?"
puts @browser.table(:class => "x-grid3-row-table").exists?
puts "WARNING: waited 30 seconds without the results table being loaded, taking a screenshot and re-running the scenario as it should appear on the second attempt"
puts "Refer to MAP-841 for further details"
end
我尝试将等待时间增加到60秒,这没有什么区别。还尝试添加@browser.table(:class => "x-grid3-row-table").exists?
调用,显然表元素在DOM中不存在,无论我设置超时多长时间都不会加载。我也尝试在同一测试场景中第二次重新运行@browser.button(:text => "Query").click
步骤,但没有什么区别。
我还尝试使用Windows 7计算机手动重现错误,并运行Chrome浏览器v59.0.3071.86(模拟用户实际拥有的内容),但无法重现错误。
我的环境是
非常感谢我可以申请进一步诊断的任何想法。