ruby-on-rails – save_and_open_page不能使用capybara 2.0?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – save_and_open_page不能使用capybara 2.0?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚将我的capybara更新为2.0,我的所有save_and_open_page调用都返回一个没有样式的html页面.它的样式表链接正确在页面的顶部.当我回到水豚1.3,风格再次工作.任何人都知道如何解决这个问题,和/或问题是什么?

谢谢,
戴夫

更新1.

破解:

我找到了一个合理的方式来解决问题,遵循simonmorley推荐的链接
Capybara Webkit problem
其指向:capybara-screenshot

它涉及使用capybara截图宝石来获取页面的截图.当您将其与生成html的save_and_open_page组合时,您可以看到它的外观,并查看HTML.

save_and_open_page
    Capybara::Screenshot.screenshot_and_open_image

如果我可以让Capybara :: Screenshot.screenshot_and_save_page工作,那么我认为我可能有一个解决方案(如果这个名字暗示着我认为这样做的话).但是,当我尝试它,我无法加载这样的文件 – capybara / util / save_and_open_page

更新2.

!等待,screenshot_and_open_image现在不工作(没有创建或显示图像). !

更新3.

测试应用:

我创建了一个测试应用程序,并在test_capybara_screenshot on Github发布.

当我在开发中运行这个测试应用程序时,页面显示显示的红色背景风格.当我运行测试,唯一适用于我的是save_and_open_page,除了没有样式.

注意,当我运行任何测试,我得到以下警告:

WARNING: Nokogiri was built against LibXML version 2.7.8,but has dynamically loaded 2.7.3

rspec测试的详细信息:

> save_and_open_page出现无聊的白色背景(不
造型).
> screenshot_and_open_image返回错误

Rack::Test capybara driver has no ability to output screen shots. Skipping.

Failure in opening /~/Documents/experiments/test_capybara_screenshot/tmp/capybara/screenshot-2012-11-26-07-48-29.png with options {}: No application found to handle ‘/~/Documents/experiments/test_capybara_screenshot/tmp/capybara/screenshot-2012-11-26-07-48-29.png’

> screenshot_and_save_page返回:

An error occurred in an after hook

LoadError: cannot load such file — capybara/util/save_and_open_page
occurred at ~/.rvm/gems/ruby-1.9.3-p125@global/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require’

解决方法

尝试将以下内容添加到您的宝石文件
group :test do
  gem "capybara"
  gem "launchy"
end

如果没有这个我不相信,save_and_open_page将无法正常工作.

– 更新 –

我已经测试了这个,当我使用保存和打开方法,我得到相同的错误.在我的设置中,这是因为我的页面引用:

<link href="/assets/application.css" media="screen" rel="stylesheet" type="text/css" />

这在Firefox,Chrome和Safari中发生.根据检查员,没有找到任何文件.

我没有太详细地研究这个,没有一个答案,为什么它不工作.然而,还有一些人也在努力:

https://github.com/jnicklas/capybara/issues/485

还有一些关于水豚和资产预编译的信息:

https://github.com/jnicklas/capybara/pull/609

这里有什么可以解决的:

https://groups.google.com/forum/#!msg/ruby-capybara/SBCor8UUj7w/hv97EgUQ1P4J

但是,如果您只想看到您的页面,您可以尝试这样做:删除scrap save_and_open_page并将您的测试更改为使用javascript.这样,我的网页开放正常.

require 'spec_helper'

 describe "Foo" do
   it "should fail if Bar is lactose intolerant",:js => true do
     # .....
   end
 end

尝试,让我知道,如果这有帮助.

回应(来自Taylored网站):

我看到页面几秒钟,然后它消失了.浏览器窗口有没有关闭方法

猜你在找的Ruby相关文章