问题标签 [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.
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:
不幸的是,我仍然看到同样的错误:
想法?
谢谢!
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
ruby-on-rails - Rails 3 路线名称
我用黄瓜+水豚。
这就是我的步骤定义之一的样子。
这是我的路由文件:
路径的名称是什么?
ruby-on-rails - 我可以在不重置浏览器状态的情况下按顺序运行多个 RSpec/Selenium 测试吗?
所以我刚开始使用 Steak,它又使用 Capybara,而 Capybara 又使用 Selenium。
因此,我听说将测试拆分为许多小的 it 子句是一种很好的 RSpec 做法,每个子句都测试一小部分功能。但是它会使测试运行花费更长的时间,因为每次测试都会重复相同的步骤。
假设我正在测试一些 ajax 功能。我想测试一下:
- 单击某个链接时会出现一个表单
- 如果我向该表单提交无效输入,则会出现错误消息
- 如果我提交有效输入等,则会出现确认消息。
但是如果我把这些东西都分解成自己的测试用例,那么 Selenium 必须从头开始:它必须加载相同的页面 3 次,单击链接以使表单出现 3 次,等等。这让我印象深刻浪费。
我想做的是指定一系列保留浏览器状态的测试,因此每个测试都会从前一个测试中断的地方继续。那可能吗?
ajax - 如何在页面加载时使用水豚和硒火 Ajax 制作黄瓜
我有以下作为黄瓜的故事:
加载该主页时,页面上有一个通过 AJAX 填充的下拉菜单,在 selenium 运行浏览器中测试
没有运行,因此我需要使用的下拉选择不存在。有什么方法可以强制 Selenium 通过一个步骤触发 javascript 事件以进行页面加载
加载页面时,通过 AJAX 检索有关成员的信息
或类似的东西。我需要那个下拉框,但是由于应用程序的其他部分中使用导航下拉菜单的一些动作缓存,但有时应该只有这个额外的下拉菜单,我在使用 javascript 加载它们之后,我无法真正改变它。
有任何想法吗?
编辑:事实证明我设置了一些错误的测试数据并且它没有满足它的条件,所以看起来像往常一样图书馆很好,我犯了一个错误,所以看起来这会很好。
selenium - Cucumber 和 Capybara,单击非链接或按钮元素
我正在尝试使用 Cucumber/Capybara/Selenium 堆栈测试就地编辑器,但我的问题是编辑器是通过单击 div 而不是链接或按钮激活的。我似乎无法弄清楚如何让 Capybara 做到这一点。有没有办法做到这一点?
javascript - 有没有办法从 JavaScript 检测到我在 Selenium Webdriver 页面中
我想在我的测试中抑制TinyMCE的初始化,如果 JavaScript 可以检测到我在 Selenium 自动化页面中运行,我可以很容易地做到这一点。
那么,是否有一些 JavaScript 代码可以用来检测 Selenium 驱动程序?或者,如何扩展 userAgent 字符串以包含可以从 JavaScript 检测到的模式?
如果它真的很重要,我会在 Mac OS X 上通过Cucumber和Capybara运行它。
ruby-on-rails - 黄瓜、水豚和 ElementNotFound
在我的 rails 应用程序中,我有一个带有执行 javascript 函数的链接的页面:
在我的黄瓜功能中,我有:
我得到的信息是:
我可能错过了一些东西,但我找不到它是什么..
ruby-on-rails - 如何在黄瓜中跟踪来自javascript的重定向?
我有一个按钮(不是提交按钮),它在提交另一个表单之前执行 ajax 调用。
我想做的是
但是重定向发生得有点晚,考虑到页面仍在主页中,“Then”语句失败。我怎样才能等到 ajax 调用(单击按钮的结果)完成并且页面获得提交者?
有任何想法吗?
编辑:示例 javascript 代码
为了
Javascript 是(请忽略语法错误,我想你会明白的)
cucumber - 通过authlogic登录,无需每次都填写表格
在我正在从事的项目中,我有许多与水豚一起运行的 Cucumber 场景。
这些场景中的大多数都以“鉴于我已登录”步骤开始。目前我的实现是:
这工作得很好,但是在每个场景之前加载和提交登录表单变得有点耗时。
有没有办法在此步骤中简单地设置会话,而不必每次都通过表单?