1

我将 Capybara(v2.0.1) 与 RSpec(v2.11.0) 一起使用,并且我的规范与README中的示例非常相似:

require 'capybara/rspec'
require 'capybara/dsl'

# other setup…

describe "Sign in" do
  include Capybara::DSL

  before do
    within("#session") do
      fill_in 'Login', :with => 'user@example.com'
      fill_in 'Password', :with => 'password'
    end
    click_link 'Sign in!'
  end

  subject { page }
  it { should have_content "logged_in? true" }
end

不幸的是,这是我看到的失败消息:

失败/错误:within("#session") do
Capybara::ElementNotFound:
Unable to find css "#session"

但它没有向我显示它使用的源的输出,并且在单击该链接后涉及重定向,所以我想确定它正在检查什么。

Capybara 似乎也在抑制警告(坦率地说,我觉得这很烦人),因为我warn page.inspect在几个地方尝试过,但输出中没有任何内容。

谁能告诉我我该怎么做?非常感谢您提供的任何帮助或见解。

我应该补充一点,我没有使用 Rails 或 Cucumber。

4

4 回答 4

4

我只是在测试开始时添加了这一行:

puts "#{page.html.inspect}"

我必须在命令行上查看所有内容,但它又快又脏。

于 2013-03-31T22:50:08.920 回答
2

capybarasave_and_open_page将 html 写入应用程序的 tmp 目录并在默认浏览器中打开它。

这些天在水豚自述文件部分的调试部分中提到了它。

于 2014-10-13T19:29:02.837 回答
1

我使用 irb 作为 Selenium 的实时调试器,这样我就可以跟着它进行。对于调试 Capybara/Selenium 的怪异现象非常有用。

于 2013-04-02T13:29:24.147 回答
0

您可以使用 page.html 查看整个源代码。从那里通过检查#session的第一个匹配项很容易检查。

于 2012-12-10T01:35:52.327 回答