问题标签 [capybara]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
15240 浏览

ruby - 如何在纯 Ruby(没有 Rails)中使用 Capybara?

我试图让 Capybara 在一个简单的 Ruby 脚本中运行——即没有/在 Rails 之外。这是脚本:

问题是,当我运行它时,我得到了这个错误:

我究竟做错了什么?

更多信息:

  • Mac OS X 10.5
  • ruby 1.8.6 (2009-06-08 patchlevel 369) [universal-darwin9.0]
  • 水豚 (0.3.9)

谢谢!

尼尔

注意:根据 jnicklas 的评论,我尝试了这个,它更接近于新的 README:

不幸的是,我仍然看到同样的错误:

想法?

谢谢!

0 投票
4 回答
2360 浏览

ruby-on-rails - 如何让 Capybara @javascript 标签在 Cucumber on Rails 3 项目中正确执行?

我在一个新的 Rails 3 项目中将 Webrat 换成了 Capybara。我在这里浏览了 Tim Riley 的精彩帖子 ( http://openmonkey.com/articles/2010/04/javascript-testing-with-cucumber-capybara ),还克隆了他的存储库,执行了示例黄瓜功能,并看到浏览器窗口火打开。因此,在这种情况下,整个 Cucumber、Capybara、Selenium 堆栈似乎都可以正常工作。

但是,如果我创建一个新的 Rails 3 项目,通过设置一个类似的示例项目运行,并使用 @javascript 注释一个场景,则浏览器窗口不会触发,并且 Cucumber 场景只是以通常的方式失败Command failed with status (1) event(在失败的情况下或待处理的步骤,Cucumber 通过设计触发 CI 工具)。

除了 Capybara 提供的 @javascript 功能外,所有其他功能都可以正常工作。

我错过了一些非常明显的东西吗?有没有办法让 BDD 新手更深入地研究问题(当 Cucumber 失败时,堆栈跟踪只显示标准 rake 错误)。

  • rvm 1.9.2-头
  • 宝石'导轨','3.0.0.rc'
  • 宝石“黄瓜”
  • 宝石'黄瓜导轨'
  • 宝石“水豚”
  • 宝石'Culerity'
  • gem 'celerity', :require => nil
0 投票
3 回答
822 浏览

ruby-on-rails - Rails 3 路线名称

我用黄瓜+水豚。

这就是我的步骤定义之一的样子。

这是我的路由文件:

路径的名称是什么?

0 投票
1 回答
895 浏览

ruby-on-rails - 我可以在不重置浏览器状态的情况下按顺序运行多个 RSpec/Selenium 测试吗?

所以我刚开始使用 Steak,它又使用 Capybara,而 Capybara 又使用 Selenium。

因此,我听说将测试拆分为许多小的 it 子句是一种很好的 RSpec 做法,每个子句都测试一小部分功能。但是它会使测试运行花费更长的时间,因为每次测试都会重复相同的步骤。

假设我正在测试一些 ajax 功能。我想测试一下:

  • 单击某个链接时会出现一个表单
  • 如果我向该表单提交无效输入,则会出现错误消息
  • 如果我提交有效输入等,则会出现确认消息。

但是如果我把这些东西都分解成自己的测试用例,那么 Selenium 必须从头开始:它必须加载相同的页面 3 次,单击链接以使表单出现 3 次,等等。这让我印象深刻浪费。

我想做的是指定一系列保留浏览器状态的测试,因此每个测试都会从前一个测试中断的地方继续。那可能吗?

0 投票
0 回答
859 浏览

ajax - 如何在页面加载时使用水豚和硒火 Ajax 制作黄瓜

我有以下作为黄瓜的故事:

加载该主页时,页面上有一个通过 AJAX 填充的下拉菜单,在 selenium 运行浏览器中测试

没有运行,因此我需要使用的下拉选择不存在。有什么方法可以强制 Selenium 通过一个步骤触发 javascript 事件以进行页面加载

加载页面时,通过 AJAX 检索有关成员的信息

或类似的东西。我需要那个下拉框,但是由于应用程序的其他部分中使用导航下拉菜单的一些动作缓存,但有时应该只有这个额外的下拉菜单,我在使用 javascript 加载它们之后,我无法真正改变它。

有任何想法吗?

编辑:事实证明我设置了一些错误的测试数据并且它没有满足它的条件,所以看起来像往常一样图书馆很好,我犯了一个错误,所以看起来这会很好。

0 投票
2 回答
17025 浏览

selenium - Cucumber 和 Capybara,单击非链接或按钮元素

我正在尝试使用 Cucumber/Capybara/Selenium 堆栈测试就地编辑器,但我的问题是编辑器是通过单击 div 而不是链接或按钮激活的。我似乎无法弄清楚如何让 Capybara 做到这一点。有没有办法做到这一点?

0 投票
5 回答
19066 浏览

javascript - 有没有办法从 JavaScript 检测到我在 Selenium Webdriver 页面中

我想在我的测试中抑制TinyMCE的初始化,如果 JavaScript 可以检测到我在 Selenium 自动化页面中运行,我可以很容易地做到这一点。

那么,是否有一些 JavaScript 代码可以用来检测 Selenium 驱动程序?或者,如何扩展 userAgent 字符串以包含可以从 JavaScript 检测到的模式?

如果它真的很重要,我会在 Mac OS X 上通过CucumberCapybara运行它。

0 投票
5 回答
3652 浏览

ruby-on-rails - 黄瓜、水豚和 ElementNotFound

在我的 rails 应用程序中,我有一个带有执行 javascript 函数的链接的页面:

在我的黄瓜功能中,我有:

我得到的信息是:

我可能错过了一些东西,但我找不到它是什么..

0 投票
1 回答
1067 浏览

ruby-on-rails - 如何在黄瓜中跟踪来自javascript的重定向?

我有一个按钮(不是提交按钮),它在提交另一个表单之前执行 ajax 调用。

我想做的是

但是重定向发生得有点晚,考虑到页面仍在主页中,“Then”语句失败。我怎样才能等到 ajax 调用(单击按钮的结果)完成并且页面获得提交者?

有任何想法吗?

编辑:示例 javascript 代码

为了

Javascript 是(请忽略语法错误,我想你会明白的)

0 投票
3 回答
1209 浏览

cucumber - 通过authlogic登录,无需每次都填写表格

在我正在从事的项目中,我有许多与水豚一起运行的 Cucumber 场景。

这些场景中的大多数都以“鉴于我已登录”步骤开始。目前我的实现是:

这工作得很好,但是在每个场景之前加载和提交登录表单变得有点耗时。

有没有办法在此步骤中简单地设置会话,而不必每次都通过表单?