我一直在尝试修复此错误很长一段时间,我似乎无法弄清楚它是什么。在此先感谢您的帮助!
我正在为带有capybara和rspec的rails应用程序编写测试,试图点击导航栏中的元素,然后测试以确保页面正确,但似乎无论我如何告诉capybara点击元素,它无法找到它。
...
subject { page }
describe 'when clicking Home link', :js do
before do
visit some_path
find('a', text: "Home").click
end
it { should have_selector('title', text: 'bla bla bla') }
end
...
我尝试了很多不同版本的代码,包括
click_link('Home'),
click_on('Home'),
find('a.header-link.header-link-home', text: 'Home').click,
find_link(...).click,
click_button(...)
等等,以及有和没有:js,以及在不同的“内部”语句中,但我总是得到Capybara :: ElementNotFound:无法找到css“a”。我也尝试将capybara的默认等待时间增加到5秒。
这是我试图点击的元素(根据页面的源代码)
<a class="header-link header-link-home" href="/">Home</a>
Gem版本:capybara(1.1.4),rspec(2.12.0)
非常感谢,我真的很感激!
答案 0 :(得分:9)
您的代码应该是正确的,我一直使用click_link 'Foobar'
。您是否尝试添加
save_and_open_page
在visit
行之后?这通常有助于我理解为什么水豚无法找到东西。
答案 1 :(得分:0)
事实证明,有些链接没有显示,因为我没有正确加载页面,因为它没有任何数据。当我在localhost服务器上打开它时,我看到了这个,但是save_and_open页面(正如Ju Liu建议的那样;谢谢!)可能会做同样的事情。我需要从正确加载的不同页面开始,或者添加一些工厂并填充页面。