jam*_*mes 4 rspec ruby-on-rails radio-button capybara rspec-rails
我的观点快照:
<%= form_for @request do |f| %>
<div class="form-group">
<%= f.radio_button(:item, "Snow/waterproof shell (upper)") %>
<%= f.label(:item, "Snow/waterproof shell (upper)") %>
</br>
<%= f.radio_button(:item, "Headlamp") %>
<%= f.label(:item, "Headlamp") %>
</div>
Run Code Online (Sandbox Code Playgroud)
然而,在我的Rspec集成测试文件(spec/requests/requests_spec.rb)上,当我写的时(请注意,选择单选按钮是用户从列表中请求项目的表单的一部分,并且测试是针对结果页面的提交后,应指明用户请求的项目).我正在使用gem'rspec-rails','2.13.1'
describe "Requests" do
subject { page }
describe "new request" do
before { visit root_path }
describe "with valid information" do
before do
choose("Snow/waterproof shell (upper)")
click_button submit
end
it { should have_content("Snow/waterproof shell (upper)")
end
end
end
Run Code Online (Sandbox Code Playgroud)
我总是得到错误:
?[31mFailure/Error:?[0m ?[31mchoose("Snow/waterproof shell (upper)")?[0m
?[31mCapybara::ElementNotFound?[0m:
?[31mUnable to find radio button "Snow/waterproof shell (upper)"?[0m
?[36m # ./spec/requests/requests_spec.rb:24:in `block (4 levels) in <top (required)>'?[0m
Run Code Online (Sandbox Code Playgroud)
如果我尝试选择("头灯")或任何其他选项,则相同.聪明的人有什么想法?这似乎很容易......
我曾多次遇到过这个问题.如果您根据dom中的ID选择表单元素,那么它更可靠:
before do
choose 'request_item_headlamp'
click_button submit
end
Run Code Online (Sandbox Code Playgroud)
如果不查看其他单选按钮会出现什么ID轨道,我无法分辨.只需在chrome中右键单击它,检查元素,然后将元素ID剪切并粘贴到测试中.
| 归档时间: |
|
| 查看次数: |
6941 次 |
| 最近记录: |