12

我正在使用带有黄瓜的 webrat,我想测试当我在页面上时是否已经检查了单选按钮。我怎样才能做到这一点 ?我没有在 webrat 中找到任何可以做到这一点的步骤。

4

8 回答 8

19
expect(find_field("radio_button_name")).to be_checked
于 2014-02-22T01:37:29.490 回答
9
input("#my_box").should be_checked
于 2009-08-14T01:19:30.943 回答
6

在某些情况下,您不能依赖具有 id 或标签或标签文本更改的复选框。在这种情况下,您可以使用have_selectorwebrat 中的方法。

从我的工作代码(我在复选框上没有 id)。

response_body.should have_selector 'input[type=radio][checked=checked][value=information]'

说明:如果文档正文包含input[type=radio]已选中且值为“信息”的单选按钮 ( ),测试将返回 true

于 2009-12-16T13:54:24.453 回答
2

刚刚将 web_step 复选框更改为单选按钮

将以下步骤添加到 web_steps.rb

Then /^the "([^"]*)" radio_button(?: within "([^"]*)")? should be checked$/ do |label, selector|
  with_scope(selector) do
    field_checked = find_field(label)['checked']
    if field_checked.respond_to? :should
      field_checked.should be_true
    else
      assert field_checked
    end
  end
end

您可以编写以下内容来检查给定的raido按钮是否被选中

And the "Bacon" radio_button within "div.radio_container" should be checked
于 2011-03-10T11:04:15.887 回答
1

您可以使用 web_steps.rb 中的内置复选框匹配器:

And the "Bacon" checkbox should be checked

但是,您需要在复选框上有一个与相应复选框输入字段的 ID 相匹配的标签。Rails 中的 f.label 助手接受一个字符串作为第一个参数中的 ID。您可能必须构建一个包含字段名称和复选框名称的字符串:

f.label "lunch_#{food_name}, food_name
f.radio_button :lunch, food_name

在任何情况下,使用此指令来查看您的 HTML 是否正确:

Then show me the page
于 2010-01-27T21:28:35.467 回答
1

包装 Jesper Rønn-Jensen 他的函数 + 添加的名称,由 rails 使用:

Then /^I should see that "([^"]*)" is checked from "([^"]*)"$/ do |value, name|
  page.should have_selector "input[type='radio'][checked='checked'][value='#{value}'][name='#{name}']"
end
于 2011-10-04T13:01:36.637 回答
0
    And the "Obvious choice" checkbox should be checked

虽然它可能是一个单选按钮,但代码会起作用。它只是检查标有该文本的字段。

于 2010-04-13T20:21:55.310 回答
0

您可以checked?在您的领域使用方法

expect(find_field("radio_button_id").checked?).to eq(true)
于 2018-07-12T11:39:25.060 回答