为什么我的 Cucumber 测试在使用 Selenium 运行时失败?

2023-12-03

我正在使用 Cucumber/Capybara 组合测试 Rails 3 应用程序。我还尝试使用 Selenium 来测试一些 JavaScript 特定场景,但遇到了我不明白的奇怪困难。

我对 Cucumber/Capybara 的经验非常少,我对 Selenium 的经验为零。

这是场景:

Scenario: Browsing events
  Given many events exist
  And I am on the events page
  Then I should see a list of 15 events
  When I follow the first event
  Then I should be on the event page
  And I should see a google map
  And I should see the event details

当该场景在 RackTest 下运行时,它会一直传递到 Google Map 步骤,此时它会失败,因为没有 JavaScript。这是预料之中的。

当我使用默认 JavaScript 驱动程序 (Selenium) 运行测试时,它在第三步失败(我应该看到包含 15 个事件的列表)。当我观察浏览器窗口时,事件列表实际上根本不包含任何事件 - 几乎就好像它们不存在于数据库中一样。

顺便说一句,第一步(存在许多事件),使用 FactoryGirl 创建事件负载。

由于这对我来说都是新鲜事,我想知道我是否遇到了典型的陷阱?除了标准安装之外,我没有进行任何配置更改rails g cucumber:install。另外,如果相关的话,我正在使用 OSX。

Thanks


我假设您正在尝试将事务装置(默认行为)与 Selenium 一起使用,但这不起作用。当浏览器单独调用 Rails 应用程序时,测试中管理的事务超出范围,因此它看不到测试创建的任何未提交的数据。

您需要使用数据库清理工具之一,而不是事务固定装置。

https://github.com/bmabey/database_cleaner

Edit:

我随后意识到is可以将事务性装置与 Selenium 测试一起使用,如果这样做,性能会更好(归功于 Kira Corina 的回答)。看http://pastie.org/1745020了解详情。

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

为什么我的 Cucumber 测试在使用 Selenium 运行时失败? 的相关文章

  • 如何在C中模拟套接字

    我有一个使用套接字的函数 我会模拟它 但我找不到如何做到这一点 有没有办法在 C 中模拟套接字 Thanks 大多数系统 库函数是弱符号 https en wikipedia org wiki Weak symbol 这意味着您可以创建自己
  • ruby 无法复制 Fixnum

    我有一些这样的代码 ssh files id rsa pub id rsa ssh files each with index do item index ssh files index generate ssh path creator
  • 如何在使用代理服务器访问 Internet 的 Windows 计算机上安装 Rails?

    我是 ruby 方式的忠实粉丝 然而今天它妨碍了我 安装rails的事实上的方法 我在WinXP机器上以域用户身份运行 是 下载并安装 ruby 一键安装程序 type gt gem install rails在命令提示符下 步骤 2 失败
  • Android Studio Espresso 测试错误:空测试套件

    尝试在 Android Studio 中执行测试时 我不断遇到以下错误 测试运行失败 无法找到以下内容的检测信息 ComponentInfo test android support test runner AndroidJUnitRunn
  • 使用自定义令牌进行 Firebase 身份验证

    我有一个 firebase 项目 我试图从我的 Rails 服务器进行身份验证 按照文档上的说明使用 ruby jwt 库创建自定义令牌 但我不断收到相同的错误 auth invalid custom token 自定义令牌格式不正确 请检
  • Selenium 2.0b3 和 IE9/Firefox 4

    在看到 Selenium 2 0b3 现在可以与 Firefox 4 和 IE9 配合使用的公告后 我购买了 Selenium 2 0b3 不幸的是 我在 2 0b3 之前遇到了同样的问题 我在 IE 中找不到元素 完全相同的测试在 IE8
  • 退出无法在 Heroku 上工作 - 使用 Devise gem 和 Rails 4

    我刚刚对使用 Devise 进行身份验证的 Rails 4 应用程序进行了初始部署到 Heroku 注销可以在本地进行 但 Heroku 返回错误 您正在查找的页面不存在 并且不会注销用户 根据 Heroku 日志和 Google SO 搜
  • Python Selenium - 按类和文本查找元素

    我正在尝试对搜索结果进行分页 我得到一个 NoSuchElementException Unable to locate element lt insert xpath here gt 这是 HTML div class pagnHy sp
  • 尝试安装 Rails 时,执行 gem ... (Gem::RemoteFetcher::FetchError) 503 错误

    这是当我尝试使用 Ruby 2 1 1 和 RVM 执行 gem install Rails v 4 1 0 时出现的错误 错误 执行 gem 时 Gem RemoteFetcher FetchError 错误 响应服务不可用 503 ht
  • 安装 mysql2 时出错:无法构建 gem 本机扩展

    我在尝试安装时遇到一些问题mysql2Rails 的宝石 当我尝试通过运行安装它时bundle install or gem install mysql2它给了我以下错误 安装 mysql2 时出错 错误 无法构建 gem 本机扩展 我该如
  • 将 mongoid 会话设置为只读

    我有不同的会话mongoid yml 其中一个会话提供来自静态 mongo 数据库的数据 我想知道是否有可能以只读模式 加载 会话 以便不进行任何更改save create destroy or destroy all可以制作 我的mong
  • 如何使用Selenium WebDriver进行可行的网络冒烟测试?

    我一直在研究可行且更快的网页加载测试Selenium 冒烟测试的一般思想是单击并导航整个站点 以确保页面正确加载 我最初想用某种方式来捕捉http状态码通过某种http图书馆自Selenium对此没有任何本机支持 但是 我发现这不是我想要的
  • 获取类别和子类别的所有产品(rails、awesome_nested_set)

    正在开发一个电子商务应用程序 我试图解决以下问题 我通过 Awesome nested set 插件实现了我的类别 如果我通过选择一个类别列出我的文章 一切正常 但对于某些链接 我想显示一个类别的所有产品及其子类别的产品 这是仅适用于一种类
  • Espresso - withEffectiveVisibility 与 isDisplayed

    有什么区别isDisplayed and withEffectiveVisibility onView withText Much Dagger check matches withEffectiveVisibility ViewMatch
  • Twitter Bootstrap Modal 无法在 Rails 中工作

    我还很新Rails and to twitter bootstrap 我正在研究模态 但我收到了 NoMethodError 未定义的方法 渲染 当我删除 代码来自my release js erb页面 它消失但没有窗口出现 另外 还有错误
  • 找不到关联,Rails 3

    class Membership lt ActiveRecord Base belongs to role belongs to user end class User lt ActiveRecord Base has many roles
  • 前端测试:测试什么、如何测试、使用什么工具?

    我为 Ruby 代码编写测试已经有一段时间了 但作为一名前端开发人员 我显然有兴趣将其纳入我为前端代码编写的代码中 我一直在尝试很多不同的选项 CasperJS http casperjs org Jasmine http jasmine
  • 通过sprocket动态渲染sass文件

    我想从助手那里渲染一些变量 scss erb模板使用了image url 萨斯函数 template scss erb background image image url 到目前为止 ERB 部分很简单 利用这个堆栈溢出答案 https
  • 如何通过保持 webDriver 处于活动状态来关闭整个浏览器窗口?

    在我的批处理执行中 第一个场景会打开多个具有多个选项卡的浏览器 我想在开始第二个场景之前关闭所有这些浏览器 Driver close 只是关闭浏览器的一个选项卡 Driver quit 正在关闭所有浏览器并结束WebDriver会议 因此
  • 如何从我的网站在 Facebook 上发布新闻源

    我有一个网站 允许用户通过 RPX 系统使用 Facebook 登录 ID 登录 当用户在我的网站上发表评论时 我希望它也能自动在他们的 Facebook 墙上发布评论 我如何使用 Rails 来做到这一点 我已经学习 facebooker

随机推荐

  • 如何知道 exec 函数中的命令错误?

    我正在使用 ffmpeg 命令通过 php 中的 exec 函数来剪切视频 但它没有创建视频文件 也没有显示任何错误 我使用了 exec 如下 exec ffmpeg i input flv ss 00 00 30 0 t 00 00 10
  • 在初始化之前从根状态调用 connectOutlets?

    http jsfiddle net pauldechov 89S5p 在 root 的 connectOutlets 中 App似乎仍然不 initialize d connectOutlets 不适合与根状态一起使用吗 为什么 如果我每次
  • 在 Swift 3 通知中心观察者中使用选择器

    NotificationCenter default addObserver self selector Selector uploaded name NSNotification Name rawValue uploaded object
  • 如何使用组合框过滤Datagridview而不更改数据源

    我正在使用 Windows 窗体编写一个程序 并且我已经构建了一些代码 如下所示 在文本框中写入站点 URL 然后单击 开始 按钮 匹配的数据将显示在 DataGridViews 中 我有 6 个 DataGridView 在第一个 Dat
  • 错误添加SceneBuilder快捷链接后如何将Scene Builder添加到Intellij

    所以我安装了Intellij第一次 我错误地链接了场景构建器快捷方式链接到FXML文件并不断收到此错误 IntelliJ failed to start scene builder 经过大量搜索后 我无法找到如何重置SceneBuilder
  • ggplot2 轴文本的奇怪理由

    我遇到了一个奇怪的轴文本对齐问题 如下图所示 您可能需要放大图像才能看到问题 正如您所看到的 x 轴文本绘制在刻度线的下方 y 轴文本绘制在刻度线的左侧 并且刻度线本身遍布各处 可能导致此行为的原因是 也许更重要的是 可以采取什么措施来避免
  • 浏览器会短暂显示没有样式的页面(视觉故障)

    我观察到 Internet Explorer 7 或 8 没关系 很少会显示我们的网页 www epsitec ch 短时间内不应用CSS 布局看起来完全被破坏了 所有内容都从上到下按顺序显示 当页面加载完成后 所有内容终于正确显示 我们的
  • Python 分割字符串并打乱中间的内容

    我在使用 python 程序时遇到问题 我需要该程序混淆单词的中间 同时保持外部两个字母完好无损 我相信我已经成功地将单词分成三个不同的部分 我只是不能弄清楚我应该如何打乱单词的中间部分 word input Enter a word fi
  • 使用 boost 函数进行 SolrNet 查询

    我正在尝试使用这个库 看起来非常好 但我很难理解如何向我的查询添加额外的参数 例如升压函数等 如何做到这一点 您可以使用 QueryOptions 的 ExtraParams 属性将任何参数添加到 Solr 查询字符串 例子 ISolrOp
  • 单击表单中的按钮会导致页面刷新

    我有一个 Angular 表单 其中有两个按钮标签 一键提交表单ng click 另一个按钮纯粹用于导航ng click 然而 当单击第二个按钮时 AngularJS 会导致页面刷新 从而触发 404 我在函数中放置了一个断点 它正在触发我
  • 如何在 stringi 包中使用反向引用?

    在 R 中我可以使用 1引用捕获组 但是 当使用 stringi 包时 这不会按预期工作 library stringi fileName lt hello you lst fileName lt stri replace first re
  • 从数据库中检索一百万条记录

    有一个数据库 它的表中大约包含 200 万条记录 我从我的java代码中运行了查询 就像这样 select from table 它将从结果集中的数据库中获取完整的数据 或不 如果是 那么它将如何工作 我想了解此检索的工作原理 请告诉我 我
  • 防止 const 成员函数更改成员数组

    显然 const 成员函数仍然允许更改类成员指向的数据 这是我的意思的一个例子 class MyClass public MyClass int getSomething const private int data data new in
  • 如何在带有子图的绘图中设置辅助x轴及其范围?

    有谁知道如何在绘图中设置辅助 x 轴及其范围 我试图在这里显示垂直直方图 但它目前仍然太小 垂直直方图 import pandas as pd import numpy as np import plotly graph objects a
  • 如何修复 PHONE GAP 中 Android 设备的粘性页脚?

    我在 Phone Gap 工作 我修复了页脚 这适用于少数设备 但不适用于少数设备 页脚的 HTML 代码 div style background image url img bottom bar png class footer div
  • 什么时候会在 C# 中使用委托? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 您在 C 中如何使用委托
  • 在 XSLT 中创建一个简单的模式弹出窗口

    我正在构建一个样式表 表中有一些成员 我想要的是 当我单击每个会员时 会打开一个弹出模式窗口 其中包含 XML 文件中的该会员数据 我可以使用会员 ID 作为参考 我尝试使用 fancybox http fancybox net 但问题是
  • 每组加权geom_密度的密度总和为1

    使用加权数据时 如何对密度图进行分组并使每组的密度总和为 1 The ggplot2帮助geom density 建议使用加权数据的技巧 除以权重之和 但是当分组时 这意味着各组的组合密度总计为 1 我希望每个组的密度总计为一个 我发现了两
  • 如何将列表嵌套到Redis中的结构中以减少顶层?

    我想在redis中维护一些元数据 meta key build key meta data user 12345 tag D12321341234123 res redis sip hmset meta key meta data 它按预期
  • 为什么我的 Cucumber 测试在使用 Selenium 运行时失败?

    我正在使用 Cucumber Capybara 组合测试 Rails 3 应用程序 我还尝试使用 Selenium 来测试一些 JavaScript 特定场景 但遇到了我不明白的奇怪困难 我对 Cucumber Capybara 的经验非常