3

コンフォメーションポップアップの肯定と却下の両方が機能することをテストするテストを作成しています。ただし、次のエラーが表示されます。

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 に数行追加しました。githubページに表示されているように、最初はWorldと同じように使用していましたが、Worldが2回使用されていたため(もう1回はキュウリライブラリで)、エラーが発生していました。env.rb ファイルに追加した行は次のとおりです。

require 'prickle/capybara'    # require

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

World(Prickle_helper)

私のエラーの原因について何か考えはありますか? ありがとう!

4

1 に答える 1

0

セレンを使用したいメソッドの前に @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
于 2012-11-05T06:54:59.373 に答える