看来我正在追溯 SO 帖子中采取的步骤: Capybara、Poltergeist 和 Phantomjs,并在 body 中给出了一个空的响应。(如果你愿意,可以将此标记为重复,但我包含了一个最小的独立测试用例和版本号。)
问题
我在做任何明显错误的事情吗?我可以运行另一个可能有助于隔离问题的最小测试吗?
文件: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>
环境
- OS X 10.8.5 (12F45)
- 红宝石 2.0.0p247 (2013-06-27) [x86_64-darwin12.4.0]
- 幻影 1.9.2
- 水豚 (2.1.0)
- 恶作剧 (1.4.1)
赦免幻影
值得注意的是,我可以使用 phantomjs 从 www.google.com 提取 html:
文件: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,因此 phantomjs 似乎工作正常。