Frage

Ich versuche, einen JS Bestätigungsdialog mit Cucumber on Rails zu testen. Ich habe einen window.onbeforeunload Event-Handler, die Sie mit einem Bestätigungsdialog aufgefordert werden, wenn Sie versuchen, von der Seite zu navigieren weg, aber ich habe keine Ahnung, wie es zu testen, jemand eine Idee, wie man dies kann getan werden?

War es hilfreich?

Lösung

Es gibt verschiedene Funktionen von Selen können Sie Warnungen / bestätigt zu erfassen verwenden. Sie sind nicht direkt mit der webrat Selen Implementierung zur Verfügung, aber wenn webrat des config.mode = :selenium verwenden, können sie wie folgt verwendet werden:

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();

Es gibt wahrscheinlich nicht die größten Tests, sondern gibt Ihnen eine Idee. Innerlich Selen überschreibt die alert () und bestätigen () -Funktionen von JS, so dass es diese Informationen erfasst werden.

Sie können mehr Dokumente finden auf der Selen FAQ oder auf Ihrem gem Server

Andere Tipps

Sehen Sie Methodendefinitionen in http: // Selen-Client. rubyforge.org/classes/Selenium/Client/Idiomatic.html

Sie können sie mit dem Selen Hilfsobjekt in Ihrer Gurke Schritt Definitionen aufrufen - z. B.

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

Sie können webrat oder Selen mit Gurken verwenden, um dies zu testen.

Meine Vermutung ist, dass Sie Simulierte Browser oder automatisierte Browser Testen möchten,

Sie können mit webrat oder webrat :: Selen oder einfach Selen mit Gurke in solchen Fällen.

Ich habe dies vor der Verwendung Selen und Gurke getestet, aber kann nicht scheinen, um den Code zu finden, wird die Post es bearbeiten, wenn ich das tun.

HTH

würde ich empfehlen, verschraubte Einheit auf einer Seite Javascript Verhalten zu testen. Sie können auch einen Blick auf Relevanz der blau-Grat-Plugin nehmen die Schraubeneinheit enthält und fügt Unterstützung für Befehlszeile und im Browser js Tests. Sie können es auf Github unter Relevanz / blau-Grat finden. (Ich die rep noch nicht haben, um mehr als einen Link zu posten: (

Es wäre eine interessante Übung seine Schraubeneinheit zu verwenden und / oder blau-Grat Gurke Tests zu fahren, und wahrscheinlich nicht so schwer zu ziehen aus.

Dieser Kern Schritte hat eine JS Bestätigungsdialog in Rails 2 und 3 mit jedem Capybara-Treiber zu testen, sollte leicht zu einem Warnfeld anzupassen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top