表元素的Watir _wait_until_present_仅在第一次运行测试时超时,但每次后续测试运行都成功

时间:2017-07-14 02:50:01

标签: linux debian cucumber watir-webdriver xvfb

我在等待表元素出现时出现超时错误,其中包含在黄瓜测试场景的前面步骤中执行的查询结果。关于这个错误的奇怪之处在于,它只在第一次运行测试时发生(在debian Linux命令shell中),但之后每次后续测试运行都会成功(即wait_until_present调用不会超时)。如果我不重新运行测试30分钟,然后尝试在同一个命令shell中再次运行它,则会重现该问题,但之后每次运行都会成功。请参阅下面的黄瓜测试脚本结果如下 cucumber test script

以下是运行的代码我单击“查询”按钮步骤

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(模拟用户实际拥有的内容),但无法重现错误。

我的环境是

  • Debian Linux v7.1
  • ruby​​ 2.0.0p643(2015-02-25修订版49749)
  • watir v2.4.8
  • watir-webdriver(0.9.1)
  • selenium-webdriver(2.48.1)
  • Chrome浏览器v45.0.2454.85
  • 使用xvfb在无头的Linux环境中呈现上述浏览器
  • ChromeDriver 2.20.353124

非常感谢我可以申请进一步诊断的任何想法。

0 个答案:

没有答案