水豚根据元素名称查找元素

Cabybara find element based on element name

您好,我正在尝试 select 输入字段并根据元素名称将值添加到 stripe 的 iframe 中。 这行不通

page.find(:name, 'exp-date')

我能够 select root div with id select 或者,但我不能 select 输入字段,它是根中某处的子节点 div

  find(:id, "root")

知道如何定位这些字段

使用水豚 find_field 方法查找字段输入。在此处查看文档: http://www.rubydoc.info/github/jnicklas/capybara/Capybara/Node/Finders#find_field-instance_method

看起来像:find_field('attributes[form_field_attribute_you_need]')

不确定这是否适用于 iframe,但您应该可以使用:

within('#target_form_id') do #or another selector
  fill_in 'field_name_or_id', with: 'value'
  fill_in 'another_field', with: 'another_value'
end

您可以在此处使用 CSS 选择器:

find('input[name="exp-date"]', match: :first).set('my value')