谢谢,
戴夫
更新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网站):