Я использую webrat с огурцом, и я бы хотел проверить, проверен ли переключатель уже, когда я нахожусь на странице. Как я могу это сделать? Я не нашел никакого шага в webrat, который может это сделать.
Как определить, проверена ли радиокнопка?
Ответ 1
expect(find_field("radio_button_name")).to be_checked
Ответ 2
input("#my_box").should be_checked
Ответ 3
Есть случаи, когда вы не можете полагаться на флажках с идентификаторами или ярлыками или при изменении текста меток. В этом случае вы можете использовать метод have_selector
из webrat.
Из моего рабочего кода (где у меня нет идентификаторов на флажках).
response_body.should have_selector 'input[type=radio][checked=checked][value=information]'
Объяснение: test вернет true, если в теле документа содержится радиокнопка (input[type=radio]
), которая отмечена и имеет значение "информация"
Ответ 4
Просто изменил флажок 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
Ответ 5
Вы можете использовать встроенный флажок в web_steps.rb:
And the "Bacon" checkbox should be checked
Однако вам нужно будет иметь метку на вашем флажке, которая соответствует идентификатору соответствующего поля ввода флажка. Помощник f.label в Rails принимает строку для использования в качестве идентификатора в первом аргументе. Возможно, вам придется создать строку, которая включает имя поля и имя флажка:
f.label "lunch_#{food_name}, food_name
f.radio_button :lunch, food_name
В любом случае используйте эту директиву, чтобы убедиться, что у вас правильный HTML:
Then show me the page
Ответ 6
Обернутый Йеспер Ронн-Йенсен свою функцию + добавленное имя, которое используется рельсами:
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
Ответ 7
And the "Obvious choice" checkbox should be checked
Хотя это может быть радиокнопка, но код будет работать. Это просто проверка полей, помеченных этим текстом.
Ответ 8
Вы можете использовать метод checked?
на своем поле
expect(find_field("radio_button_id").checked?).to eq(true)