加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 19:43:36 所属栏目:百科 来源:网络整理
导读:我刚刚将我的capybara更新为2.0,我的所有save_and_open_page调用都返回一个没有样式的html页面.它的样式表链接正确在页面的顶部.当我回到水豚1.3,风格再次工作.任何人都知道如何解决这个问题,和/或问题是什么? 谢谢, 戴夫 更新1. 破解: 我找到了一个合理的
我刚刚将我的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网站):

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读