我有这个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 %>
Run Code Online (Sandbox Code Playgroud)
这通过:
expect(page).to have_selector('input[placeholder="ex: Jeff"]')
Run Code Online (Sandbox Code Playgroud)
但这不是:
expect(page).to have_field('input[placeholder="ex: Jeff"]')
Run Code Online (Sandbox Code Playgroud)
这不是:
expect(page).to have_selector('input[placeholder="ex: Jeff"]')
Run Code Online (Sandbox Code Playgroud)
选择器是指HTML选择器,所以它引用了html元素?have_css我认为寻找CSS但它似乎做得更多.以下是备忘单中的示例:
response.body.should have_css("input", :count => 3) #True if there are 3 input tags in response
Run Code Online (Sandbox Code Playgroud)
这似乎寻找输入HTML选择器.
那么有什么区别,为什么其他两个在我的例子中失败了?
从文档这里 have_css将调用has_selector与css作为PARAM,因为has_selector可以处理css,xpath...
def have_css(css, options={})
HaveSelector.new(:css, css, options)
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3298 次 |
| 最近记录: |