Dav*_*ins 8 capybara rspec-rails ruby-on-rails-3 phantomjs poltergeist
在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()
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在rspec中使用capybara/poltergeist时如下:
spec_helper.rb
require 'capybara/poltergeist'
Capybara.javascript_driver = :poltergeist
Run Code Online (Sandbox Code Playgroud)
然后使用需要javascript的调用规范:
parties_spec.rb
it "should allow a simple screenshot", js: true do
visit "/"
page.driver.render('./log/screen_Home.png', :full => true)
end
Run Code Online (Sandbox Code Playgroud)
它似乎没有呈现我的javascript,而且屏幕截图始终是空白的!
我已经尝试了调试器,但这似乎也带来了一个空白的HTML页面(只是带有空头和身体标签的html)
我很确定这个问题要么是水豚与恶作剧之间的界面,要么是(更有可能)恶作剧和幻影.以下是相关宝石的版本:
capybara 1.1.3 capybara
-webkit 0.13.0
poltergeist 1.0.2
phantomjs是1.7.0
不确定如何进一步排除故障...任何帮助将不胜感激.
the*_*eme 11
创建一个非常简单的测试,看看会发生什么.
simple_spec.rb
require 'spec_helper'
require 'capybara/poltergeist'
include Capybara::DSL
Capybara.javascript_driver = :poltergeist
describe 'some stuff which requires js', :js => true do
it 'will take a screenshot' do
visit("http://google.com")
page.driver.render('./file.png', :full => true)
end
end
Run Code Online (Sandbox Code Playgroud)
这会让你成为谷歌的形象吗?
小智 6
我有同样的问题,但在我的情况下,它是由使用子域引起的.恶作剧者被指向无意义的网址(有点像"http://spb.:22789")所以除了'about:blank'之外什么也没收到.
为解决这个问题,我做了以下事情:
为Capybara设置app_host和server_port
Capybara.app_host ='http://city.tulp.test:3003'Capybara.server_port
= 3003
将伪域添加到/ etc/hosts
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
11543 次 |
| 最近记录: |