Zugriff auf ein element ohne Attribute in Watir
Mit Watir gibt es eine Möglichkeit, den Zugriff auf ein element ohne Attribute?
Beispiel:
<span>Text</span>
Möchte ich vermeiden Sie die Verwendung von xpath, aber wenn das der einzige Weg ist, es ist cool.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Abgesehen von der nicht-WATIR Probleme mit tags in den ersten Platz, oder bei der Anforderung von einzigartigen Qualitäten, die von Ihren Entwicklern (oder sich selbst), können Sie immer Zugriff auf ein element über dessen Eltern-Elemente, oder index.
Zum Beispiel:
Text
Können Sie arbeiten durch, jedoch viele einzigartige Elemente, die Sie brauchen, um vor dem erreichen der untergeordneten span-element, ohne die Verwendung von Xpath. Natürlich, Sie benötigen nur eine einmalige Eltern-element zu erreichen, das spezifische Kind-element, und arbeiten Sie nach unten aus, dass für das Kind.
Weiteres Beispiel, vorausgesetzt, es ist die N-TEN span auf der Seite:
@browser.span(:index => n)
Den von-index-Ansatz ist sehr spröde und neigen zu brechen, wenn ein update gemacht wird, zu der Seite, jedoch.
:index =>1
wäre die Zweite Instanz eine Spanne, innerhalb der divWenn es text:
Wenn Sie wissen, nur ein Teil des Textes, den Sie verwenden können, regulärer Ausdruck:
Grundsätzlich gibt es drei Möglichkeiten, um diese Besondere Herausforderung. Zeljko hat sich der erste basiert auf was ist innen das element wie bekannt text. Adam Adressen der häufigste Weg, was ist umschließenden oder mit das element ich kläre die Dritte Möglichkeit, die ist was ist eingeschlossen-durch oder neben das element.
Wenn Sie ein element bekannt, die im inneren ist die, die Sie wollen, dann starten Sie mit und verwenden Sie die
.parent
Methode, um den 'container' - element. Dies kann auch verwendet werden, um zu finden, ein 'Geschwister' - element mit .Eltern zu bekommen, die Sie wollen über eine gemeinsame container wie eine Zeile in der Tabelle. Der erste Einsatz ist ziemlich offensichtlich, aber die zweite ist wohl mehr verbreitet und sehr nützlich bei der Arbeit mit Tabellen.Zum Beispiel Können sagen, Sie haben eine Tabelle mit mehreren Zeilen von Daten, wo eine Spalte ist einzigartig Teilenummern, und eine weitere Spalte "zum Warenkorb hinzufügen" - links. Nun, wenn Sie wollen, einen bestimmten Artikel zu Ihrem Warenkorb, Sie könnte verwenden Sie einen Index, kombiniert mit dem text 'zum Warenkorb hinzufügen' verwenden Sie code wie diesen, basierend auf der 5. Verknüpfung mit einem bestimmten text
Aber das ist brüchig, denn sobald sich die Ergebnisse ändern, (was passieren kann, eine Menge mit live-Daten) Ihr Teil ist nicht mehr 5. man in dieser Tabelle, und Ihre test-brechen würde. Sie müsste irgendeine Prüfung, die Sie gefunden haben, das richtige Teil und nicht etwas anderes in dieser Zeile. Jedoch, in watir Sie tun können, so etwas wie dieses:
In der Fall von eine Zelle in der Tabelle, der Muttergesellschaft der Zelle wird in der Regel eine Zeile in der Tabelle, und damit im Klartext bedeutet dies 'finden der Zelle mit "Teil keine 123-45' es, und dann in der gleichen Zeile finden, und klicken Sie auf "add to cart" - link. (obwohl ich vermute, Sie dachte, dass Sie sich nur durch Lesen des Codes.)
Diese können Sie verwenden, um eine 'Geschwister' oder auch nur die "Eltern" selbst, wo es etwas einzigartiges element, neben oder innerhalb des Objekts, die Sie benötigen, um die Interaktion mit.
Kann man wohl etwas tun, ähnlich wie mit Xpath, aber viel Glück, Sinn macht es aus, wenn das Lesen der code-fünf Wochen später. Dies ist ein Grund, warum ich wesentlich lieber Watir und Watir-Webdriver vs Selen.