我正在使用Rails 5.1.1,RSpec 3.5.0& Capybara 2.7.1。
我希望在主页上检查一个导航栏的测试,根据我发现我应该使用have_css
的一些文档。给出的例子是:
have_css("input#movie_title")
我的理解是,这会查找ID为 movie_title 的input
标记。这是对的吗?
我在我的代码中尝试这个:
have_css("div.navbar-default")
但是我得到了这个错误:
Failure/Error: expect(page).to have_css("div.navbar-default") expected to find css "div.navbar-default" but there were no matches
为什么这不起作用?我有一个类'navbar-default'的div,所以这应该可以解决。
编辑/解决:
我意识到自己的错误。我不得不期待陈述,navbar-default
类在导航标记中,不是 div标记。第二个语句位于div标签中,但由于第一个语句错误而未运行。
我现在已经修好了,所有工作
答案 0 :(得分:0)
have_css
匹配器应用于父容器而不是实际元素。有父容器吗?
尝试这样的事情:
# Find the parent
parent = page.find('div#nav')
# Check for the nested div
expect(parent).to have_css(".navbar-default")