Ruby on rails 水豚:预计不会找到xpath“/html/body/*";,找到3个匹配项

Ruby on rails 水豚:预计不会找到xpath“/html/body/*";,找到3个匹配项,ruby-on-rails,capybara,Ruby On Rails,Capybara,我得到了这个例外,我不知道为什么 expected not to find xpath "/html/body/*", found 3 matches: "", "Log in Welcome back Sign up Join the community myproj.com Community curated directory of 0 EVENTS", "". Also found "", which matched the selector but not all filters.

我得到了这个例外,我不知道为什么

  expected not to find xpath "/html/body/*", found 3 matches: "", "Log in Welcome back Sign up Join the community myproj.com Community curated directory of 0 EVENTS", "". Also found "", which matched the selector but not all filters. (Capybara::ExpectationNotMet)
  ~/.rvm/gems/ruby-2.2.4@myproj/gems/capybara-2.6.2/lib/capybara/node/matchers.rb:125:in `block in assert_no_selector'
  ~/.rvm/gems/ruby-2.2.4@myproj/gems/capybara-2.6.2/lib/capybara/node/base.rb:84:in `synchronize'
  ~/.rvm/gems/ruby-2.2.4@myproj/gems/capybara-2.6.2/lib/capybara/node/matchers.rb:121:in `assert_no_selector'
  ~/.rvm/gems/ruby-2.2.4@myproj/gems/capybara-2.6.2/lib/capybara/session.rb:686:in `block (2 levels) in <class:Session>'
  ~/.rvm/gems/ruby-2.2.4@myproj/gems/capybara-2.6.2/lib/capybara/session.rb:109:in `reset!'
  ~/.rvm/gems/ruby-2.2.4@myproj/gems/capybara-2.6.2/lib/capybara.rb:285:in `block in reset_sessions!'
  ~/.rvm/gems/ruby-2.2.4@myproj/gems/capybara-2.6.2/lib/capybara.rb:285:in `each'
  ~/.rvm/gems/ruby-2.2.4@myproj/gems/capybara-2.6.2/lib/capybara.rb:285:in `reset_sessions!'
  ~/.rvm/gems/ruby-2.2.4@myproj/gems/capybara-2.6.2/lib/capybara/cucumber.rb:8:in `After'
预期找不到xpath”/html/body/*,找到3个匹配项:“”,“登录欢迎回来注册加入社区myproj.com社区管理的0事件目录”,“”。还发现“”与选择器匹配,但并非所有筛选器都匹配。(水豚:预期未达标)
~/.rvm/gems/ruby-2.2。4@myproj/gems/capybara-2.6.2/lib/capybara/node/matchers.rb:125:in'block in assert\u no\u selector'
~/.rvm/gems/ruby-2.2。4@myproj/gems/capybara-2.6.2/lib/capybara/node/base.rb:84:in'synchronize'
~/.rvm/gems/ruby-2.2。4@myproj/gems/capybara-2.6.2/lib/capybara/node/matchers.rb:121:in'assert\u no\u selector'
~/.rvm/gems/ruby-2.2。4@myproj/gems/capybara-2.6.2/lib/capybara/session.rb:686:in'block(2层)in'
~/.rvm/gems/ruby-2.2。4@myproj/gems/capybara-2.6.2/lib/capybara/session.rb:109:in'reset!'
~/.rvm/gems/ruby-2.2。4@myproj/gems/capybara-2.6.2/lib/capybara.rb:285:in`block in reset_sessions!'
~/.rvm/gems/ruby-2.2。4@myproj/gems/capybara-2.6.2/lib/capybara.rb:285:in'each'
~/.rvm/gems/ruby-2.2。4@myproj/gems/capybara-2.6.2/lib/capybara.rb:285:in'reset_sessions!'
~/.rvm/gems/ruby-2.2。4@myproj/gems/capybara-2.6.2/lib/capybara/cucumber.rb:8:in'After'
编辑:

我正在使用SeleniumWebDriver(Firefox42.0)


本例中的问题是,在我单击某个链接后,该链接指向的页面在运行预期之前无法加载。我在两个不同的步骤中得到了点击和期望。因此,通过在执行单击的步骤中添加期望值,我能够解决这个问题(通过强制水豚等待加载新页面)。

我也遇到了同样的问题。为了解决这个问题,我在测试用例的最后一行添加了visit'about:blank'

即:

it'测试搜索功能…'做什么
访问“/”
填写('search_id',带有:'tablet')
单击链接“搜索”
预期(第页)。包含“平板电脑”内容

访问“about:blank”#请发布所有相关代码以及您尝试过的内容。请提供您的测试。此错误表示您与Capybara一起使用的任何驱动程序都未清除浏览器(在大多数情况下,这意味着访问浏览器中的about:blank)或者您已经更改了Capybara.default\u max\u wait\u time,这样浏览器就没有时间更改页面-您使用的是什么驱动程序?您是否修改了驱动程序会话重置!方法?我在env.rb和rails_helper.rb中添加了gist。我使用的是SeleniumWebDriver(Firefox42.0),您介意添加测试吗?
it 'testing search functionality...' do
   visit '/'
   fill_in('search_id', with: 'tablet')
   click_link 'Search'
   expect(page).to have_content 'tablet'

   visit 'about:blank'  #<-- this flashes page body (the buffer 
                        #    of the last page) and that's it
end