我正在尝试选择带水豚的单选按钮,但找不到单选按钮。这是我的rspec测试,视图和错误。请注意,我正在使用工厂来提供用户,技能等。
Rspec测试
scenario "user chooses a couple skills and moves on to bio" do
user = create(:user)
skill = create(:skill)
skill_two = create(:skill)
skill_three = create(:skill)
sign_in(user)
visit onboard_skills_path
choose(skill.name)
end
查看
<%= form_for(:onboard_skill, url: onboard_skills_path) do |f| %>
<ul>
<% @skills.each do |skill| %>
<li>
<%= check_box_tag("skill_ids[]", skill.id, current_user.onboard_skill_ids.include?(skill.id)) %>
<%= f.label(skill.name) %>
</li>
<% end %>
</ul>
<%= f.submit "Next >", class: "submit_skills" %>
<% end %>
我得到的错误是:
Unable to find radio button "Development 1"
答案 0 :(得分:3)
您正在使用choose
来测试单选按钮,但在您提供的视图代码中,您有一个check_box_tag
。尝试将check_box_tag
更改为radio_button_tag
,或者如果您确实需要复选框,请使用check
代替choose
。
请注意,您还可以通过使用find搜索ID来选择单选按钮或复选框。当capybara没有通过标签名称找到它时,这会有所帮助。尝试:
find(:css, "#skill_ids_[value='#{skill.id}']").set(true)