【发布时间】:2017-03-14 17:10:18
【问题描述】:
当用户在我拥有的网页上向下滚动时,会在导航标签中添加一个类并更改页面上的位置。当用户滚动回顶部时,该类被删除并移回原始位置。当我在浏览器中检查元素时,我知道此功能和类有效。我正在尝试编写 Rspec 测试来测试此功能。我一直在尝试使用 Capybara,但没有成功。测试的滚动部分有效,但无法在 HTML 和 CSS 中搜索添加的类。
导航 id 是“views”,要添加的类是“on_nav”。这是目前为止的测试:
scenario 'Scroll down' do
visit '/'
page.execute_script "window.scrollBy(0,1000)"
expect(page.html).to include('class="on_nav"')
end
错误消息是它在页面上找不到“class=on_nav”,即使当我在浏览器中检查元素时我可以看到它。这些是我尝试过的一些不同的随机命令,从我在尝试谷歌时在线查看的答案中,都给了我同样的错误,或者他们说我的语法错误,我找不到解决方法:
expect(page.html).to have_selector("#on_nav")
expect(page).to have_css("nav#views.on_nav")
expect(page.has_css?(".on_nav")).to eq(true)
我对编写 Web 测试完全陌生,但我知道我在网上找到的答案(例如 this question 关于检查 CSS 和 this article 关于使用 Capybara 测试元素)对我没有用。这可能会给我带来问题,因为我正在尝试测试 nav 标签,而我在网上找到的所有示例都在谈论 div 或 input?有没有可能?
【问题讨论】: