看来我正在回顾SO帖子中采取的步骤:Capybara, Poltergeist and Phantomjs and giving an empty response in body。 (如果需要,请将此标记为重复,但我包含一个最小的独立测试用例和版本号。)
我做了什么明显错误的事吗?我可以运行另一个可以帮助隔离问题的最小测试吗?
file:pgtest.rbrequire 'rubygems'
require 'capybara'
require 'capybara/dsl'
require 'capybara/poltergeist'
module PGTest
include Capybara::DSL
extend self
def test
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app)
end
Capybara.current_driver = :poltergeist
session = Capybara::Session.new(:poltergeist)
visit "http://www.google.com"
sleep 5
puts session.html
end
end
PGTest.test
如下调用,它会打印一个空页:
$ ruby pgtest.rb
<html><head></head><body></body></html>
值得注意的是,我可以使用phantomjs从www.google.com中提取html:
file:pjs_dump.jsvar page = require('webpage').create();
page.open("http://www.google.com", function () {
var html = page.evaluate(function () {
return document.documentElement.outerHTML;
});
console.log(html);
phantom.exit();
});
当我运行'phantomjs pjs_dump.js'时,它会从www.google.com打印html,因此幻像似乎正常工作。
答案 0 :(得分:1)
这对我有用:
require 'rubygems'
require 'capybara'
require 'capybara/dsl'
require 'capybara/poltergeist'
Capybara.run_server = false
Capybara.current_driver = :poltergeist
class PGTest
include Capybara::DSL
def test
visit "http://www.google.com"
puts page.body
end
end
PGTest.new.test
答案 1 :(得分:0)
使用rspec,capybara和poltergeist测试rails应用程序时遇到了类似的问题。当主体为空时尝试查找元素时,规范失败。
原来,问题出在我的rails代码中。它导致错误,页面没有渲染,并且水豚收到一个空页面。我没有堆栈跟踪。