Capybara :: ElementNotFound:无法找到css"a"

Col*_*lin 8 rspec ruby-on-rails capybara

我一直试图解决这个错误很长一段时间,我似乎无法弄清楚它是什么.在此先感谢您的帮助!

我正在为带有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
  ...
Run Code Online (Sandbox Code Playgroud)

我尝试了很多不同版本的代码,包括

  click_link('Home'),
  click_on('Home'),
  find('a.header-link.header-link-home', text: 'Home').click,
  find_link(...).click,
  click_button(...)
Run Code Online (Sandbox Code Playgroud)

等等,以及有和没有:js,以及在不同的"内部"语句中,但我总是得到Capybara :: ElementNotFound:无法找到css"a".我也尝试将capybara的默认等待时间增加到5秒.

这是我试图点击的元素(根据页面的源代码)

  <a class="header-link header-link-home" href="/">Home</a>
Run Code Online (Sandbox Code Playgroud)

宝石版本:水豚(1.1.4),rspec(2.12.0)

非常感谢,我真的很感激!

Ju *_*Liu 9

你的代码应该是正确的,我一直都在用click_link 'Foobar'.你有没有试过添加一个

save_and_open_page
Run Code Online (Sandbox Code Playgroud)

之后的visit行?这通常有助于我理解为什么水豚无法找到东西.