RSpec问题与have_css

时间:2017-06-10 15:43:53

标签: css ruby-on-rails twitter-bootstrap rspec

我正在使用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标签中,但由于第一个语句错误而未运行。

我现在已经修好了,所有工作

1 个答案:

答案 0 :(得分:0)

have_css匹配器应用于父容器而不是实际元素。有父容器吗?

尝试这样的事情:

# Find the parent
parent = page.find('div#nav')
# Check for the nested div 
expect(parent).to have_css(".navbar-default")