Огурец + тестирование JS alert - PullRequest
15 голосов
/ 10 августа 2009

Я пытаюсь проверить диалог подтверждения JS с Cucumber on Rails. У меня есть обработчик события window.onbeforeunload, который запрашивает у вас диалоговое окно подтверждения, если вы пытаетесь уйти со страницы, но я не знаю, как это проверить, у кого-нибудь есть идеи, как это можно сделать?

Ответы [ 5 ]

6 голосов
/ 18 августа 2009

Существуют различные функции селена, которые вы можете использовать для сбора предупреждений / подтверждений. Они не доступны напрямую с реализацией webrat selenium, но при использовании вебрата config.mode = :selenium их можно использовать следующим образом:

Then /^I should see a JS alert$/ do
    selenium.is_alert_present.should be_true
end

# or

Then /^I should see a "Are you sure?" JS confirm dialog$/ do
    selenium.get_alert.should eql("Are you sure?")
end

# you can also click the OK/Cancel buttons on confirm boxes with

selenium.chooseOkOnNextConfirmation();
#and
selenium.chooseCancelOnNextConfirmation();

Возможно, есть не самые лучшие тесты, но они дают вам представление. Внутренне селен переопределяет функции JS () и «Подтверждение» (JS), поэтому он может захватить эту информацию.

Вы можете найти больше документов на Селен faq или на вашем гем-сервере

1 голос
/ 07 января 2010

См. Определения методов в http://selenium -client.rubyforge.org / classes / Selenium / Client / Idiomatic.html

Вы можете вызывать их с помощью вспомогательного объекта селен в ваших определениях шага Cucumber - например,

Then /^I should see a JS confirm dialog saying "([^\"]*)"$/ do |statement|    
  selenium.confirmation.should eql(statement)                               
end
0 голосов
/ 27 сентября 2011

Эта суть содержит шаги для тестирования диалогового окна подтверждения JS в Rails 2 и 3 с любым драйвером Capybara, его легко адаптировать к окну оповещения.

0 голосов
/ 11 августа 2009

Я бы рекомендовал использовать screw-unit для тестирования поведения javascript на странице. Вы также можете взглянуть на плагин Relevance Blue-Ridge, который включает в себя винтовой модуль и добавляет поддержку командной строки и в тестировании js браузера. Вы можете найти его на GitHub под релевантностью / Blue-Ridge. (У меня пока нет представителя, чтобы опубликовать более одной ссылки: (

Было бы интересным упражнением использовать винтовой блок и / или синий гребень для проведения тестов на огурец, и, вероятно, не так уж сложно его выполнить.

0 голосов
/ 11 августа 2009

Вы можете использовать Webrat или Selenium с огурцом, чтобы проверить это.

Полагаю, вам нужно тестирование Simulated Browser или Automated Browser,

В таких случаях вы можете использовать Webrat или Webrat :: Selenium или просто Selenium with Cucumber.

Я проверял это с помощью Selenium и Cucumber ранее, но, похоже, не могу найти код, отредактирую сообщение, если я это сделаю.

НТН

...