2009-07-23 8 views

ответ

9
input("#my_box").should be_checked 
+0

кажется этот метод больше не работает. Я использую Capybara 2.4.1. Метод 'find_field', предложенный @evedovelli, сделал трюк. –

+0

Я бы предложил не использовать «should be_checked», а вместо этого: ожидать (find_field («my_boxt»)). Be_checked – Tommyixi

6

Есть случаи, когда вы не можете полагаться на флажках с идентификаторами или ярлыками или при изменении текста ярлыка. В этом случае вы можете использовать метод have_selector от webrat.

Из моего рабочего кода (где у меня нет идентификаторов на флажках).

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

Объяснение: тест возвращает истину, если тело документа содержит переключатель (input[type=radio]), который проверяется и имеет значение «информацию»

1

Вы можете использовать встроенный флажок Искатель в web_steps .rb:

And the "Bacon" checkbox should be checked 

Однако, вы должны иметь ярлык на ваш флажок, соответствующий идентификатор соответствующего входного поля флажок. Помощник f.label в Rails принимает строку для использования в качестве идентификатора в первом аргументе. Вы, возможно, придется построить строку, которая включает в себя имя поля и имя CheckBox:

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

В любом случае, используйте эту директиву, чтобы увидеть, что у вас есть HTML правильный:

Then show me the page 
0
And the "Obvious choice" checkbox should be checked 

Хотя это может быть переключатель, но код будет работать. Это просто проверка полей, помеченных этим текстом.

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 

И вы можете написать следующее, чтобы проверить, отмечен ли данная кнопка Райдо или не

And the "Bacon" radio_button within "div.radio_container" should be checked 
1

обернутого Jesper ронны-Jensen его функция + добавили имя, которое используется рельсами:

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 
11
find_field("radio_button_name").should be_checked 

или в новом синтаксисе:

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

 Смежные вопросы

  • Нет связанных вопросов^_^