2012-10-29 91 views
3

我正在編寫測試以測試確認和解除構造彈出工作。但是,我得到錯誤:在Ruby on Rails上用黃瓜/水豚測試彈出窗口

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' 

運行我的測試時。

我。特點文件的步驟是這個樣子:

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中:

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

然後我添加了幾行代碼到我的Gemfile中,如下所示here包括刺。我最初是像World一樣擁有它,就像他們在github頁面上展示的那樣,但是由於World被兩次使用(另一次在黃瓜庫中),這給我帶來了錯誤。這裏是我添加到我的env.rb文件的行:

require 'prickle/capybara' # require 

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

World(Prickle_helper) 

任何想法是什麼可能會導致我的錯誤?謝謝!

回答

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