Verwendung von Geb, um den Elementattributwert nach dem Seitenereignis zu überprüfen

8

Nach ein bisschen Hilfe hier, schreibe ich einen funktionalen Web-Test mit Geb und möchte den deaktivierten Attributwert einer Formular-Senden-Schaltfläche sowohl vor als auch nach einem Ereignis, dem Fluss, testen sollte wie folgt sein:

  1. Seite laden, Senden-Schaltfläche wird in der Seitenquelle als deaktiviert deklariert und sollte z. B. deaktiviert werden <input type="submit" class="submit" disabled="true"/> .
  2. Aktivieren Sie ein Kontrollkästchen auf der Seite. Dies sollte dazu führen, dass ein Teil des JQuery-Codes ausgeführt wird, der die deaktivierte Übermittlungsschaltfläche programmatisch aktiviert: $('input.submit').attr('disabled', false);

Mein erster Versuch war es, die Assertion $('input.submit').@disabled == 'true' zu verwenden, diese scheint nach dem Laden der Seite für die erste Überprüfung zu funktionieren, aber nach dem Ausführen meines JQuery-Codes, um die Schaltfläche zu aktivieren, gibt eine nachfolgende Prüfung immer noch das gleiche Ergebnis zurück. Dies hat mich dazu gebracht, mich zu fragen, ob diese Art der Überprüfung nur in der Lage ist, den Wert beim Laden der Seite zu melden und keine nachfolgenden programmatischen Änderungen zu sehen?

Ich entdeckte dann Gebs jquery itegration, ich hatte gehofft, ich könnte dies verwenden, um den Wert des Submit-Buttons zurückzugeben und meine Behauptung auf diesem z. $('input.submit').jquery.attr('disabled') == false jedoch bestätigt die Geb-Dokumentation, dass alle Aufrufe der .jquery -Eigenschaft die Geb Navigator-Instanz zurückgeben, so dass ich leider nicht die Informationen zurückgeben kann, die ich möchte.

Ich habe auch bezweifelt, ob der JQuery-Code tatsächlich den gesperrten Zustand der Übergabeschaltfläche umschaltete, ich habe dies ausgiebig mit Firebug getestet und kann bestätigen, dass dies perfekt im Browser funktioniert, also vermute ich, dass dies entweder ein Problem mit meinem Verständnis ist von Geb oder vielleicht eine Begrenzung von Geb selbst?

Es fällt mir auf, dass das Überprüfen des Werts von Elementattributen nach dem Ausführen einer Aktion auf einer Seite ein häufiger Anwendungsfall sein könnte, daher hoffe ich eher, dass ich eine trivial einfache Möglichkeit verpasst habe, dies zu tun. Ich wäre sehr dankbar für Hinweise, die mir helfen könnten, das zu sortieren.

Prost,

Edd

    
Edd Grant 07.06.2011, 16:35
quelle

2 Antworten

10

Habe ein bisschen mehr Tests gemacht und jetzt ein zufriedenstellendes Ergebnis erzielt. Ich habe ein paar Dinge gemacht, von denen ich jetzt glaube, dass sie nicht korrekt sind, nämlich den disabled -Attributwert wie folgt auf ungültige Werte von true und false zu setzen:

%Vor%

Mit Blick auf die HTML-Formularspezifikation wird das deaktivierte Attribut nicht angezeigt nimm einen Wert, vielmehr bedeutet Präsenz allein, dass ein Element deaktiviert ist. Das Ändern meines Codes, um dies zu beachten und das Attribut zu entfernen, um die Aktivierung eines Elements anzuzeigen, scheint den Zweck erfüllt zu haben:

%Vor%

Hinweis: Ich setze immer noch den Wert von disabled auf true , da ich nicht bestimmen kann, wie das Attribut gesetzt wird, ohne einen Wert zu setzen, siehe dieser SO-Post für weitere Details.

Mit dem oben Gesagten kann ich jetzt Geb verwenden, um den Status der deaktivierten / aktivierten Elemente wie folgt zu aktivieren:

%Vor%

Hinweis: Geb scheint ein Zeichenfolgenliteral zu benötigen, das den erwarteten Status anzeigt, und nicht einen Booleschen Wert, der dazu führte, dass meine Assertionen fehlschlugen.

Also das ist es - alles funktioniert jetzt gut und ich laufe mit vielen Geb-Tests herum! Ich hoffe, diese Erklärung ist für andere von Nutzen.

    
Edd Grant 09.06.2011 09:08
quelle
3

Weiterleiten meines Posts auf der Geb-Mailing-Liste:

Nachdem Sie den jQuery-Code ausgeführt haben, der die Schaltfläche aktiviert, ist es möglich, dass Sie das Ergebnis überprüfen, bevor der Code die Schaltfläche tatsächlich aktiviert hat? Zum Beispiel, machen Sie etwas wie:

%Vor%     
Ray Nicholus 08.06.2011 15:53
quelle

Tags und Links