Capybara不等待图标加载

时间:2016-07-06 14:54:32

标签: ruby-on-rails capybara integration-testing

我在Capybara运行Ruby on Rails集成测试。它目前失败,因为面板与我需要点击的按钮重叠。所以,我试图点击一个id为“click-to-close”的图标,它将关闭面板,然后点击它下面的按钮。但是,当我运行Capybara测试时,关闭图标不会出现。

这是有问题的按钮 - 它使用字体真棒双角(>>)图标。

<div class="fa fa-angle-double-right fa-lg right-sidebar-show close-button" id="click-to-close"></div>

以下是我正在进行的Capybara测试的一部分:

page.accept_confirm do
  sleep 5.seconds #wait for help dash to appear
  page.save_screenshot "XPath.png"
  page.find("#click-to-close").click
  sleep 5.seconds #wait for help dash to disappear
  click_on "Remove", wait: 25, match: :first
end

以下是测试执行时面板的屏幕截图。 enter image description here

以下是使用关闭图标查看面板的截图。 enter image description here

1 个答案:

答案 0 :(得分:0)

我遇到了这个问题:
https://github.com/thoughtbot/capybara-webkit/issues/808
https://github.com/thoughtbot/capybara-webkit/issues/728

最佳解决方案是使短划线的整个顶栏可以点击,并让Capybara自动测试搜索顶部栏的ID并单击它。问题中没有提供足够的信息,但我们可以说ID是#top-bar。你会这样做:

page.accept_confirm do
  sleep 5.seconds #wait for help dash to appear
  page.find("#top-bar").click
  click_on "Remove", wait: 25, match: :first
end