Я пытаюсь протестировать функцию моего приложения в Ruby on Rails от Cucumber и Capybara: когда вы нажимаете кнопку «удалить», появляется подтверждение «
Вы уверены? »Затем предполагается нажать« ОК ».
Сначала я просто попробовал
Given('I accept the popup') do
click_button('OK')
end
Тогда огурец сгенерирует ошибку:
Unable to find button "OK" (Capybara::ElementNotFound)
Тогда я попробовал:
Given('I accept the popup') do
page.driver.browser.switch_to.alert.accept
end
как упомянуто в Как проверить диалог подтверждения с огурцом?
Огурец кинь эту ошибку:
undefined method `switch_to' for #<Capybara::RackTest::Browser:0x0000000009241c20> (NoMethodError)
Затем я попытался добавить «@javascript» перед моим сценарием в «test.feature», например:
@javascript
Scenario: Admin can manage scales
Given I am on Scales page
Given I destroy a scale
Given I accept the popup
Then I should see "Scale deleted"
Тогда огурец сгенерирует ошибку:
Unable to find Mozilla geckodriver. Please download the server from https://github.com/mozilla/geckodriver/releases and place it somewhere on your PATH. More info at https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver.
Я так растерялся. Я неправильно сконфигурировал среду?
Мой Gemfile:
group :test do
gem 'shoulda-matchers'
gem 'simplecov', :require => false
gem 'rails-controller-testing', '1.0.2'
gem 'minitest-reporters', '1.1.14'
gem 'guard', '2.13.0'
gem 'guard-minitest', '2.4.4'
gem 'capybara'
gem 'launchy'
gem 'selenium-webdriver'
gem 'cucumber-rails', :require => false
gem 'cucumber-rails-training-wheels'
end
Мой web_steps.rb:
require 'uri'
require 'cgi'
require 'selenium-webdriver'