测试设计 - Capybara :: ElementNotFound:无法找到xpath"/ html"

Nik*_*iko 3 rspec ruby-on-rails capybara factory-bot

我正在尝试使用RSpec,Capybara和Factory Girl测试我网站的登录功能.我总是在终端中收到以下错误,但找不到任何解决方案.当我使用时,save_and_open_page我得到一个空白页面.我希望有人知道什么是错的.谢谢!

这里是 test output

Failure/Error: expect(page).to have_text("Login successful.")
     Capybara::ElementNotFound:
       Unable to find xpath "/html"
     # ./spec/features/navigation_spec.rb:49:in `block (2 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)

这是我的sometest_spec.rb文件与相应的行:

require 'spec_helper'
include Warden::Test::Helpers

describe "User login" do
  it "log in normal user" do

    Warden.test_mode!

    user = create(:normal_user)
    user.confirmed_at = Time.now
    user.save
    login_as(user, scope: :user)

    expect(page).to have_text("Login successful.")

    logout(:user)
    Warden.test_reset!
  end
end
Run Code Online (Sandbox Code Playgroud)

这是我的factory_girl.rb档案

RSpec.configure do |config|
  config.include FactoryGirl::Syntax::Methods
end
Run Code Online (Sandbox Code Playgroud)

factories.rb文件

FactoryGirl.define do
  factory :normal_user, class: User do
    firstname "John"
    lastname "Doe"
    email "test@user.com"
    password "thepassword"
    admin false
  end
end
Run Code Online (Sandbox Code Playgroud)

Nik*_*iko 5

事实证明我必须手动visit a_pathlogin_as才能看到额外的登录页面内容.