save_and_open_page 不适用于水豚 2.0?

2024-04-13

我刚刚将水豚更新到 2.0,并且所有 save_and_open_page 调用都返回一个没有样式的 html 页面。它在页面顶部正确地提供了样式表链接。当我恢复到水豚 1.3 时,样式再次起作用。有人知道如何解决这个问题,和/或问题是什么?

谢谢, 戴夫


更新1。

hack:

我按照 simonmorley 推荐的链接找到了解决该问题的合理方法:水豚Webkit问题 https://stackoverflow.com/questions/7802614/capybara-webkit-automatically-save-a-screenshot-on-an-rspec-test-failure?rq=1这指向:水豚截图 https://github.com/mattheworiordan/capybara-screenshot

它涉及使用 capybara-screenshot gem 来获取页面的屏幕截图。当你将它与生成 html 的 save_and_open_page 结合起来时,你可以看到它的样子,并看到 HTML。

    save_and_open_page
    Capybara::Screenshot.screenshot_and_open_image

如果我能得到Capybara::Screenshot.screenshot_and_save_page工作,那么我认为我可能有一个解决方案(如果名称暗示我认为它所做的操作)。然而,当我尝试时,我得到cannot load such file -- capybara/util/save_and_open_page


更新2。

!!等等,screenshot_and_open_image 现在不起作用(没有创建或显示 png 图像)。 !!


更新3。

测试应用程序:

我创建了一个测试应用程序,并将其发布在Github 上的 test_capybara_screenshot https://github.com/tayloredwebsites/test_capybara_screenshot.

当我在开发中运行这个测试应用程序时,页面会显示出耀眼的红色背景样式。当我运行测试时,唯一对我有用的是 save_and_open_page ,除了没有样式。

请注意,当我运行任何测试时,我会收到以下警告:

警告:Nokogiri 是针对 LibXML 版本 2.7.8 构建的,但已动态加载 2.7.3

rspec 测试的详细信息:

  • save_and_open_page 出现了一个无聊的白色背景(没有 造型)。
  • Screenshot_and_open_image 返回错误:

Rack::测试水豚驱动程序无法输出屏幕截图。跳绳。

使用选项 {} 打开 /~/Documents/experiments/test_capybara_screenshot/tmp/capybara/screenshot-2012-11-26-07-48-29.png 失败:找不到处理 '/~/Documents/experiments/test_capybara_screenshot 的应用程序/tmp/水豚/screenshot-2012-11-26-07-48-29.png'

  • Screenshot_and_save_page 返回:

after 挂钩中发生错误

LoadError: 无法加载此类文件 -- capybara/util/save_and_open_page 发生在 ~/.rvm/gems/ruby-1.9.3-p125@global/gems/activesupport-3.2.6/lib/active_support/dependency.rb:251:in `require'



尝试将以下内容添加到您的 gem 文件中

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/issues/485

并且,有关水豚和资产预编译的更多信息:

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

这里可能有什么解决办法:

https://groups.google.com/forum/#!msg/ruby-capybara/SBCor8UUj7w/hv97EgUQ1P4J 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

尝试一下,让我知道是否有帮助。


回应(来自泰勒网站):

我看到该页面几秒钟,然后就消失了。有没有办法让浏览器窗口不关闭?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

save_and_open_page 不适用于水豚 2.0? 的相关文章

  • Rails 3 Link_to:远程未触发 RJS

    我正在使用以下代码在 Rails 3 中设置 AJAX 操作 代码的 AJAX 部分似乎可以工作 但它没有请求正确的文件 而我的 respond to 为它提供常规 HTML 路由信息 resources zones do resource
  • 当一组工作人员完成时如何执行 Sidekiq 回调

    假设我有一个 Sidekiq 任务将产品处理到我的数据库 每个产品都按商店分组 因此我的代码的一个过于简化的示例将是这样的 stores each do store store products each do product Produc
  • 在 Rails 的文本字段中显示链接

    在我的 Rails 3 1 应用程序中 我有一个用于评论的文本字段 我希望能够允许人们包含可点击的链接 而不仅仅是显示为纯文本的 url 以及让文本字段识别用户何时文本字段中的换行符 用户无需添加 html 我怎样才能做到这一点 如果用户将
  • 预期的 ProductField,出现数组问题

    我有一个 Rails 4 应用程序 它有一个如下所示的 params 块 def store params params require store permit name description user id products attr
  • git push heroku master 权限被拒绝

    我正在关注 ruby railstutorial 我运行命令 git push heroku master 它吐出了这个错误 Permission denied publickey fatal Could not read from rem
  • 为什么“rails server -e production”会出现“没有路由匹配“/”并且样式表未加载?

    它正在运行 Rails 3 0 0 或 Rails 3 0 5 使用 Ruby 1 9 2 当处于开发模式时 rails server then http 本地主机 3000 http localhost 3000一切正常 并且http l
  • Rails Active Admin css 与 Twitter Bootstrap css 冲突

    我对 Rails 资产管道有点陌生 所以我可能做错了什么 我正在尝试为我的后端使用 Active Admin 为我的前端应用程序使用 twitter bootstrap css 我将 bootstrap css 添加到 应用程序 资产 样式
  • 将 Rails 变量传递给液体可以在控制台中工作,但不在视图中

    我想将哈希传递给渲染方法 当我这样做时 在我的控制台中一切正常 object Object find params id hash object object to liquid template Liquid Template parse
  • Rails 4:资产未在生产中加载

    我正在尝试将我的应用程序投入生产 但图像和 CSS 资源路径不起作用 这是我目前正在做的事情 图像资源位于 app assets images image jpg 样式表位于 app assets stylesheets style css
  • Heroku 部署错误

    在 Windows 环境中 尝试部署到 Heroku 时出现以下错误 C Ruby lib ruby gems 1 8 gems heroku 1 9 13 lib heroku commands base rb 32 in 没有这样的文件
  • 仅删除多对多关系

    我有一个 has and belongs to many friends join table gt friends peoples 要添加朋友 我会这样做 people followers lt lt friend这会创建关系和新的个人资
  • 使用 VCR 过滤敏感数据

    我正在使用 VCR gem 记录 http 交互并在将来重播它们 我想过滤掉 uri 请求中的实际密码值 以下是 uri 的示例 http services somesite com Services asmx Cabins Usernam
  • Rails/Nginx 中的超时——最佳实践

    我正在开发一个应该在 Nginx 服务器上运行的 Rails 应用程序 根据输入 应用程序可能需要很长时间来处理请求 或者在出现错误时挂起 因此我想防止进程永远运行 除了确保客户端收到超时信号的 Nginx 配置之外 我想我可能仍然需要确保
  • 为什么 RackMultipart* 文件保留在我的 Rails /tmp 目录中?

    我正在使用 Paperclip 2 3 来处理在 Ubuntu 上运行的 Rails 3 0 3 应用程序上的图像上传 Paperclip 正在按广告处理上传 但在应用程序的 tmp 文件夹中创建的 RackMultipart 文件仍然存在
  • 在 Rails 3 中渲染 Markdown 文本

    我想将 markdown 转换为 html 在我看来我有markdown some text variable 但我得到了错误undefined method markdown I added require BlueCoth 到envir
  • Rails - 渲染:目标锚标记的操作?

    我希望像这样使用渲染 render action gt page form 我也尝试过这个 render template gt site page form 那也没用 这个特定页面上的表单位于最底部 如果提交时发生任何错误 我不希望用户被
  • rvm gem 安装错误?

    我正在摆弄 ruby gems 和 rvm 它工作得很好 但现在当我尝试安装 gem 时出现错误 gem install Rails错误 同时 执行 gem Errno EACCES 权限被拒绝 Users da rvm gems ruby
  • ruby从1.8.7升级到1.9.2(使用Rails 3.1.1)后本地服务器错误

    我刚刚安装了rvm并使用rvm将ruby从1 8 7升级到1 9 2 我在我的应用程序上运行了捆绑安装 它重新安装了我的 gems 当我在本地运行 Rails 服务器并将浏览器导航到 localhost 3000 时 服务器日志中显示以下错
  • 如何为 ApplicationController 中 after_action 过滤器中的所有操作渲染 json?

    是否可以在 Rails ApplicationController 中创建一个 after filter 方法 该方法在每个操作上运行并呈现为 JSON 我正在构建一个 API 并且希望将控制器中的每个操作的输出呈现为 JSON 客户控制器
  • RoR - Rails 中的大文件上传

    我有一个 Rails Web 应用程序 允许用户上传视频 视频存储在 NFS 安装的目录中 当前的设置适用于较小的文件 但我也需要支持大文件上传 最多 4GB 当我尝试上传 4GB 文件时 它最终会发生 但从用户体验的角度来看很糟糕 上传开

随机推荐

  • 访问网络驱动器上的文件

    背景 我有一个必须从网络驱动器 Z 上的文件读取的应用程序 这在我的办公室域中工作得很好 但是它在现场 在不同的域中 不起作用 据我所知 域用户和网络驱动器的设置方式相同 但是我无权访问客户域中的用户等 当我无法访问网络驱动器时 我想我需要
  • 如何使用Android 4.4中出现的ImageReader?

    Android 4 4 Kit Kat 推出了图像读取器 http developer android com reference android media ImageReader html用于访问 Surface 中的图像的类 对于实时
  • 如何在 Rails 应用程序的数据库/模型中存储营业时间?

    我正在创建一个 Rails 应用程序 它将存储企业的营业时间和营业时间 最初 我想到简单地使用文本数据类型并使其成为自由格式 Monday to Friday 9am to 5pm Saturday 11am to 4pm Closed S
  • 无法在 urllib.request 中使用 https 代理

    我使用 python 创建了一个脚本urllib request申请https其中的代理 我尝试过如下操作 但遇到了不同类型的问题 如urllib error URLError
  • 如何为独立的 Illuminate IoC 容器创建 Illuminate/Support/Facade/App Facade

    在我的独立 没有 Laravel 项目中 我想使用 Illuminate IoC 容器 我还想通过访问应用程序容器App外观由提供illuminate support成分 我安装了这两个组件 v5 0 28 这是我的 简化的 代码 func
  • 从扩展类调用时,groovy 中的闭包不能使用私有字段

    我有一个 groovy 课程 其中有一个私有字段和一个方法 在该方法中 我调用 http 服务 并在其中传递一个闭包来处理响应 像这样的事情 class WebUiRestRequestSender private String jSess
  • 删除“if”语句的大括号是否有任何例外?

    我是一名计算机科学专业的学生 前段时间我们的教授向我们解释说 在 C 语言中 当只有一个语句时 我们可以删除大括号 例如 if a do b 但我们不能这样做 if a do b do c 因为那会做不止一个声明 但它也告诉我们 删除大括号
  • 在汇编器中导出优化的 strlen?

    以下代码能够确定 DWORD 的一个或多个字节是否设置为 0 mov eax value mov edx 07EFEFEFFh add edx eax xor eax 0FFFFFFFFh xor eax edx and eax 08101
  • numpy 数组上的余数函数 (%) 运行时间远远长于手动余数计算

    在过去的几天里 我一直致力于改进 python 函数的运行时 该函数需要多次使用余数函数 等 我的主要测试用例是超过 80 000 个元素的 numpy 数组 单调递增 迭代次数为 10000 次 尽管我也尝试过各种其他大小 最终我发现余数
  • 如何在python中终止进程之前执行代码?

    这个问题涉及 python 中的多处理 我想在终止进程时执行一些代码 更具体地说 是在终止进程之前执行一些代码 我正在寻找一种解决方案atexit register对于Python程序 我有一个方法工作者 看起来 def 工人 而真实 打印
  • 在自己的目录中安装 WordPress 但永久链接失败

    我在 EC2 上安装了 WordPress 位于 var www html wordpress 我按照 WordPress 指南将 index php 和 htaccess 复制到根目录 即 var www html 并修改了index p
  • 在 R: lme4::glmer 中指定逻辑混合模型中重复测量的随机效应

    我正在寻找反馈 以确定如何正确指定随机效应来解释重复测量设计中的相关性 但具有多个相关性级别 包括纵向数据 对于每个预测变量组合 结果是二元的 所以我将拟合逻辑混合模型 我本来打算使用glmer 函数从lme4包裹 如果您想知道这些数据是如
  • SQL if语句在where子句中用于搜索数据库

    我正在创建一个存储过程来返回搜索结果 其中某些参数是可选的 我想要一个 if 语句 where条款但无法使其发挥作用 这where子句应仅按非空参数进行过滤 这是 sp ALTER PROCEDURE spVillaGet Add the
  • 如何淡入隐藏的 JavaFX 标签

    如何在隐藏项目上添加精美的 JavaFX 事件 例如 当我显示隐藏标签时 我想使用 淡入淡出 效果 由单击按钮触发 调用下面的方法时如何添加效果 FXML private void handleButtonAction ActionEven
  • 使用带有 unicode 的 xhtml2pdf 时遇到问题

    我一直在尝试转换希伯来语 html 文件但没有成功 无论我尝试何种编码 希伯来语字符在输出 PDF 中都会显示为黑色矩形 我尝试了 pisa 发行版中包含的一些 unicode 测试文件 pisa 3 0 33 test test unic
  • ASP.Net Identity 2 通过短信重置密码

    我希望在重置密码时向用户发送短信 我已经具备发送短信的功能 我只需要有关如何使用 Identity 2 0 进行设置的指南 我似乎无法在网上找到任何有用的信息 参考代码本身也没有正确注释 我想生成一个安全代码 将其发送给用户 然后他必须将其
  • sp改变时函数导入

    我正在使用实体框架的函数导入功能从 net 4 0 代码调用存储过程 但是 每次更改存储过程结果集时 我都必须删除函数导入并再次添加 有什么方法可以通过更改实体模型中的代码来合并更改 而不必再次删除并添加函数导入 谢谢 使用函数导入时 一些
  • Oracle 主键:NUMBER 与 NUMBER(7,0)

    指定 PK 的精度有什么好处吗 鉴于记录可能永远不会超过几千条 7 0 是否足够 不指定精度有什么危险吗 NUMBER 7 0 只是限制了值域 它们的内部表示没有不同 CREATE TABLE t pk col1 NUMBER 7 0 NO
  • 访问数据库表单 ActiveX 控件错误

    我正在使用一个带有日期选择器控件的表单 当打开表单并单击日期选择器控件 MSCOMCT2 OCX 时 我收到以下无用的错误 您输入的表达式 Change 作为偶数属性设置 产生以下错误 加载 ActiveX 时出错 控制您的一份表格或报告
  • save_and_open_page 不适用于水豚 2.0?

    我刚刚将水豚更新到 2 0 并且所有 save and open page 调用都返回一个没有样式的 html 页面 它在页面顶部正确地提供了样式表链接 当我恢复到水豚 1 3 时 样式再次起作用 有人知道如何解决这个问题 和 或问题是什么