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