Capybara-Webkit:page.should_content() 没有实现?

Posted

技术标签:

【中文标题】Capybara-Webkit:page.should_content() 没有实现?【英文标题】:Capybara-Webkit: page.should have_content() not implemented? 【发布时间】:2013-04-06 11:49:10 【问题描述】:

我最近尝试使用:

Then(/^I should see "(.*?)"$/) do |arg1|
  page.should have_content(arg1)
end

查询页面并查看页面上是否存在文本。

这适用于默认的 Capybara 驱动程序,但在将 javascript 驱动程序设置为 capybara-webkit 并再次运行测试后,我得到:

  undefined method `find_xpath' for #<Capybara::Webkit::Driver:0x007fa3f00152e8> (NoMethodError)
  ./features/step_definitions/customer_steps.rb:12:in `/^I should see "(.*?)"$/'
  features/manage_customers.feature:10:in `Then I should see "ABC XYZ"'

我正在使用 javascript 驱动程序,因为我也在使用 AngularJS 来填充我的数据。

我的问题:

    capybara-webkit 中是否没有实现 have_content() 和 page.has_content?()? 问题的根源是什么?

【问题讨论】:

【参考方案1】:

看起来capybara-webkit 可能有问题:https://github.com/thoughtbot/capybara-webkit/issues/499

我现在将gem 'capybara', '2.0.3' 添加到我的gemfile 中,这似乎解决了这个问题。

【讨论】:

我通过将 gemfile 更改为 gem 'capybara-webkit', git: 'git://github.com/thoughtbot/capybara-webkit.git' 解决了这个问题,只需添加 git 源即可可能拉了一个固定的开发版本。

以上是关于Capybara-Webkit:page.should_content() 没有实现?的主要内容,如果未能解决你的问题,请参考以下文章

Capybara-Webkit:缺少 js/React 并且找不到变量:WeakMap

如何使用 capybara-webkit 获取响应头和时间

$.ajax 删除请求未在 capybara-webkit 中发送数据参数

Capybara-Webkit:page.should_content() 没有实现?

在 Capybara-Webkit 中显示 @font-face 字体

在 capybara-webkit 中禁用声音