如何确定是否已选中单选按钮?

时间:2009-07-23 19:43:19

标签: radio-button cucumber webrat checked

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

8 个答案:

答案 0 :(得分:14)

find_field("radio_button_name").should be_checked

或以新语法:

expect(find_field("radio_button_name")).to be_checked

答案 1 :(得分:9)

input("#my_box").should be_checked

答案 2 :(得分:6)

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

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

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

说明:如果文档正文包含一个选中的单选按钮(input[type=radio])并且其值为“information”

,则test将返回true

答案 3 :(得分: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

答案 4 :(得分: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

答案 5 :(得分:1)

WrappedJesperRø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

答案 6 :(得分:0)

    And the "Obvious choice" checkbox should be checked

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

答案 7 :(得分:0)

您可以在字段上使用方法checked?

expect(find_field("radio_button_id").checked?).to eq(true)