ruby-on-rails - 在 Ruby on Rails 中用 cucumber/capybara 测试弹出窗口

标签 ruby-on-rails ruby ruby-on-rails-3 cucumber capybara

<分区>

我正在编写测试来测试确认和取消确认弹出窗口是否有效。但是,我收到错误:

And I dismiss popup                                     # features/step_definitions/web_steps.rb:74
  undefined method `switch_to' for #<Capybara::RackTest::Browser:0xa6f0dec> (NoMethodError)
  ./features/step_definitions/web_steps.rb:75:in `/^I confirm popup$/'
  features/add_session.feature:121:in `And I confirm popup'

在运行我的测试时。

我的 .features 文件中的步骤如下所示:

And I press "Delete"
And I confirm popup

在 web_steps.rb 中,我定义了以下内容:

When /^I confirm popup$/ do
  #page.evaluate_script('window.confirm = function() { return true; }')
  #page.click('OK')
  page.driver.browser.switch_to.alert.accept
  #popup.confirm 
end

When /^I dismiss popup$/ do
  page.driver.browser.switch_to.alert.dismiss
  #page.evaluate_script('window.confirm = function() { return true; }')
  #page.click('Cancel')
  #popup.dismiss
end

我正在使用我在我的 Gemfile 中包含的 prickle gem:

group :test do
  gem 'cucumber-rails'
  gem 'prickle'
end

然后我按照概述在我的 Gemfile 中添加了几行 here包括刺痛。我最初像 World 一样拥有它,就像它们在 github 页面上显示的那样,但这给了我错误,因为 World 被使用了两次(另一次在 cucumber 库中)。以下是我添加到我的 env.rb 文件中的行:

require 'prickle/capybara'    # require

module Prickle_helper
  include Capybara::DSL
  include Prickle::Capybara  # include  Prickle
end

World(Prickle_helper)

关于可能导致我的错误的任何想法?谢谢!

最佳答案

在我想使用 selenium 的方法之前,我省略了 @javascript。例如:

@javascript
Scenario: Delete the class
  Given I am on the home page
  And I press "Delete"
  And I confirm popup
  Then I am on the homepage
  And I should not see the deleted class

关于ruby-on-rails - 在 Ruby on Rails 中用 cucumber/capybara 测试弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13114901/

相关文章:

mysql - 测试时如何让 Rails 4.x streaming 与 MySQL 一起工作?

ruby-on-rails - 如何检测是否通过 Ruby on Rails 调用了 ruby​​ 代码

ruby-on-rails - Mongoid:选择适合多个选项的嵌入对象

ruby-on-rails - 重命名表后,多个迁移的名称为 *

ruby-on-rails - 规范;如何测试这个功能?

ruby-on-rails - 向 ActiveRecord 对象添加附加数据

ruby-on-rails - 无法打开 CSV 文件 : no implicit conversion of StringIO into String

ruby - 在 Ruby 中使用 Readline 自动补全以 @(at 符号)开头的字符串

javascript - 带有 highcharts 的 javascript 中的日期/时间问题

ruby-on-rails - Heroku:高效的图像、样式表和 Javascript 缓存