水豚不等待图标加载

Capybara does not wait for icons to load

我正在运行宁Ruby Rails Capybara 集成测试。它目前失败了,因为面板与我需要单击的按钮重叠。所以,我试图点击一个带有 id #click-to-close 的图标,这将关闭面板,然后点击它下面的按钮。但是,我运行水豚测试的时候没有出现关闭图标。

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

<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

这是执行测试时面板的屏幕截图。

这是带有关闭图标的面板的外观截图。

我 运行 陷入了这个问题:
https://github.com/thoughtbot/capybara-webkit/issues/808
https://github.com/thoughtbot/capybara-webkit/issues/728

最佳解决方案是让dash的整个顶部栏都可以点击,让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