【发布时间】:2018-02-10 19:03:50
【问题描述】:
我正在使用 RSpec 和 Capybara 为我的 Rails 应用程序编写功能测试,但我的测试失败并显示错误消息:
Failure/Error: click_link "Google"
Capybara::ElementNotFound:
Unable to find visible link "Google"
我的规范写成:
it "lists logged in user's profile data" do
visit '/'
mock_auth_hash
click_link "Google"
click_link "User"
expect(page).to have_content('mockuser')
end
我的 Google 登录 link_to 在我的 application.html.erb 布局中:
<a class="nav-item nav-link"><%= link_to 'Google', '/auth/google' %></a>
当我使用相同的 link_to 并将其放入我的根页面时,测试顺利通过。 Capybara 很可能没有在我的 application.html.erb 布局中获取 HTML。我不确定如何解决这个问题,而且 Capybara 的文档没有说明任何解决方案。
感谢您提供的任何帮助。
【问题讨论】:
-
在 dom 中是否可以看到 link_to?如果不是,例如有一种将其可见性或显示值设置为隐藏的样式,然后水豚将找不到它。可以在您的水豚选择器中使用
visible: false...但这没有多大意义,因为用户无法单击他们看不到的链接。我会尝试使用js: true进行一些调试
标签: ruby-on-rails rspec capybara