【问题标题】:Can't fill in any hidden elements in Capybara when ignore_hidden_elements is true当 ignore_hidden_​​elements 为 true 时,无法填写 Capybara 中的任何隐藏元素
【发布时间】:2013-05-13 18:23:21
【问题描述】:

我正在使用 Capybara 编写一些功能测试,用于涉及大量 javascript 刷新的页面(当用户单击“继续”按钮时,url 将保持不变,但会显示隐藏的内容,显示的内容将是隐藏,因此在页面“上”的任何给定点都有大量的文本/选择器/等,但对用户隐藏)。

为了测试这个功能,我希望 Capybara 的 ignore_hidden_​​elements 配置选项为真,因为这最能代表用户体验。

但是页面上也有一些 jQuery 插件使用精美的图形来填充隐藏的基本 HTML 元素,我想使用 Capybara 为这些元素选择正确的值,而不是尝试使用 Javascript手动模拟用户与元素的交互。

特别是,我正在尝试测试设置为 display:none 并在用户与其交互时由 jQuery 插件填充的选择框。我希望能够做到这一点:

select('value', from: 'select_box')

但是选择框是隐藏的。

所以我尝试了这个:

select('value', from: 'select_box', visible: false)

但这也没有用。我不愿意将 ignore_hidden_​​elements 设置为 false,因为这对用户的模拟效果更差,我必须返回并在许多测试行中添加“可见:真”。

知道怎么做吗?有没有更巧妙地取消ignore_hidden_​​elements的选项?

编辑 -- 根据 Andrey 的回复,我将 ignore_hidden_​​elements 设置为 false,然后进行与之前相同的 capybara select 测试:

select 'value', from: 'select_box_id'

而且,就像魔术一样,它奏效了。当我再次将 ignore_hidden_​​elements 更改为 true 并尝试此行时:

select 'value', from: 'select_box_id', visible: false

我收到此错误:

Failure/Error: select 'value', from: 'select_box_id', visible: false
     Capybara::ElementNotFound:
       Unable to find select box "select_box_id"

不是一个错误的可能性吗?我应该举报吗?

【问题讨论】:

  • 如果select('value', from: 'select_box', visible: false) 不起作用,那么select('value', from: 'select_box')Capybara.ignore_hidden_elements = false 也不起作用。如果它有效,它应该被认为是 Capybara 中的一个错误。 ignore_hidden_elementsvisible 选项影响同一个参数
  • 那么我认为这是一个错误。详情见上。
  • 你的水豚版本是什么?
  • 水豚 2.0.2,水豚 webkit 0.14.2。我没有指定版本,所以它应该是最新的,不是吗?

标签: ruby-on-rails ruby-on-rails-3 rspec capybara


【解决方案1】:

这是 Capybara 2.0.x 中的一个错误。 Here is a test case 在 2.0.x 中可重现,但在 2.1 中不可重现。

但是 Capybara-Webkit 的维护者还没有发布兼容 Capybara 2.1 的版本。

可能的解决方案:

  • 使用兼容 Capybara 2.1 的驱动程序
  • 使用来自 github 上 master 分支的 Capybara-Webkit
  • 不要试图与不可见的元素交互(它在 Selenium 中不起作用,所以我认为交互的可能性应该被视为 Capybara-Webkit 中的一个错误)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 2023-02-23
    • 2014-08-23
    相关资源
    最近更新 更多