据我所知,assert_select是一种用于测试HTML元素状态的Capybara方法,而assert_selector用于测试是否存在任何<select>元素及其内部文本。
那么,为什么:
assert_select "h1", "Foobar"工作,当h1不是<select>元素的时候?Rails Guide在这里似乎不一致。
发布于 2019-05-13 15:37:35
您可能需要:
assert_selector "h1", text: "Foobar"发布于 2019-05-13 15:43:17
这看起来像是对术语的一些误解。
CSS选择器是用于选择要设置样式的元素的模式。assert_select用于选择器测试(不仅仅是<select>元素)。
您的问题中有指向Rails指南的链接。来自there
HTML方法允许您使用简单而强大的语法来查询响应的
元素。
assert_select有两种形式:
assert_select(selector, [equality], [message])确保通过选择器在所选元素上满足相等条件。选择器可以是CSS选择器表达式(字符串)或具有替换值的表达式。
通过从元素(Nokogiri::XML::Node or Nokogiri::XML::NodeSet的实例)及其后代开始的选择器,assert_select(element, selector, [equality], [message])确保在所有选定元素上满足相等条件。
例如,您可以使用以下命令验证响应中title元素的内容:
assert_select 'title',“欢迎使用Rails测试指南”
您还可以使用嵌套的assert_select块进行更深入的调查。
在下面的示例中,li.menu_item的内部assert_select在由外部块选择的元素集合中运行:
assert_select 'ul.navigation‘do assert_select 'li.menu_item’end
https://stackoverflow.com/questions/56106832
复制相似问题