【问题标题】:Capybara does not wait for icons to loadCapybara 不等待图标加载
【发布时间】:2016-07-06 14:54:31
【问题描述】:

我正在 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

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

下面是带有关闭图标的面板外观的屏幕截图。

【问题讨论】:

  • 您使用的是哪个驱动程序?
  • 我不确定什么是驱动程序:D
  • github.com/jnicklas/capybara#drivers - 您很可能会使用 selenium(JS 测试的默认设置)、poltergeist 或 capybara-webkit。 Selenium 会在你的桌面上打开一个实际的浏览器,另外两个是无头的
  • 我们正在使用 webkit
  • 你用什么版本的 Qt 构建它?

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


【解决方案1】:

我遇到了这个问题:
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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-31
    • 2015-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    相关资源
    最近更新 更多