我有这个html.erb Rails表单:
<h1 class=new_vendor_header>New Vendor Form</h1>
<%= form_for(@vendor) do |f| %>
<%= f.label :name %>
<%= f.text_field :name, placeholder: "ex: Jeff" %>
<%= f.submit "Submit" %>
<% end %>
通过:
expect(page).to have_selector('input[placeholder="ex: Jeff"]')
但这不是:
expect(page).to have_field('input[placeholder="ex: Jeff"]')
而这不是:
expect(page).to have_selector('input[placeholder="ex: Jeff"]')
选择器是指HTML选择器,所以它引用了html元素? have_css我认为寻找CSS但它似乎做得更多。以下是备忘单中的示例:
response.body.should have_css("input", :count => 3) #True if there are 3 input tags in response
这似乎在寻找输入HTML选择器。
那么有什么区别,为什么其他两个在我的例子中失败?