在 rails 3.1.2 项目(mac OS X)中工作,我正确安装了 PhantomJS(我可以运行如下代码,它运行良好,准确地抓取页面标题并保存准确的屏幕截图)
try_phantom.coffee
page = require('webpage').create()
page.open 'http://localhost:5000/parties/onetestparty', (status) ->
title = page.evaluate -> document.title
console.log "Title: #{title}"
page.render './log/javascript_screenshot.png'
phantom.exit()
但是,当我尝试在 rspec 中使用 capybara/poltergeist 时,如下所示:
spec_helper.rb
require 'capybara/poltergeist'
Capybara.javascript_driver = :poltergeist
然后使用需要javascript的调用规范:
缔约方规范.rb
it "should allow a simple screenshot", js: true do
visit "/"
page.driver.render('./log/screen_Home.png', :full => true)
end
我的javascript似乎没有被渲染,而且截图总是空白!
我已经尝试过调试器,但这似乎也带来了一个空白的 HTML 页面(只是带有空头和正文标签的 html)
我很确定问题出在 capybara 和 poltergeist 或(更有可能)poltergeist 和 phantomjs 之间的接口。以下是相关 gem 的版本:
capybara 1.1.3 capybara
-webkit 0.13.0
poltergeist 1.0.2
phantomjs 是 1.7.0
不知道如何进一步排除故障......任何帮助将不胜感激。