我有一个简单的Web测试场景,其中Capybara运行webrick和poltergeist,但它让我抓狂:
let(:person) { create(:person) }
scenario 'works with their password', js: true do
# Login with password
visit '/login'
fill I18n.t('labels.email_address'), with: person.email
fill I18n.t('labels.password'), with: person.password
click_button(I18n.t('actions.login'))
page.status_code.should == 200
# Verify we are logged in
within('header') do
expect(page).to have_link "#{person.first_name} #{person.last_name}"
end
end
响应看起来很好,只是如果我输入pry-rescue,page
是空的,导致它显然找不到头中的链接:
[9] pry(#<RSpec::ExampleGroups::UserLogin>)> page.all
Nokogiri::CSS::SyntaxError: unexpected '$' after ''
from /usr/local/lib/app-bundle/gems/nokogiri-1.12.5-x86_64-linux/lib/nokogiri/css/parser_extras.rb:90 `on_error'
[10] pry(#<RSpec::ExampleGroups::UserLogin>)> page.first
Nokogiri::CSS::SyntaxError: unexpected '$' after ''
from /usr/local/lib/app-bundle/gems/nokogiri-1.12.5-x86_64-linux/lib/nokogiri/css/parser_extras.rb:90 `on_error'
[17] pry(#<RSpec::ExampleGroups::UserLogin>)> page.html
=> ""
我不知道Nokogiri在这里做什么,看起来像是在解析jquery之类的东西?
1条答案
按热度按时间mbjcgjjk1#
这里的问题与代码完全无关:函数
first
和all
需要一个参数,而错误消息并不清楚这就是问题所在。为什么
page.html
是空的对我来说仍然是个谜。