Огурец + тестирование JS alert

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

Ответы

Ответ 1

Существуют различные функции селена, которые вы можете использовать для захвата предупреждений/подтверждений. Они не доступны непосредственно с реализацией селена webrat, но при использовании webrat 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();

Вероятно, не самые большие тесты, но дает вам представление. Внутренний селен переопределяет функции alert() и confirm() JS, чтобы он мог захватывать эту информацию.

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

Ответ 2

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

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

Then /^I should see a JS confirm dialog saying "([^\"]*)"$/ do |statement|    
  selenium.confirmation.should eql(statement)                               
end

Ответ 3

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

Я предполагаю, что вы хотите использовать Simulated Browser или Automated Browser,

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

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

НТН

Ответ 4

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

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

Ответ 5

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