Wie suchen Sie die Dynamische WebElement mit WebDriver

Automatisierung-Spezifikation - basierend auf Java WebDriver

Hallo

ich arbeite an einem webdriver automation(Java-code) zu automatisieren bus Buchung an.
Hier ist mein Szenario....

(1)Abfahrt & Ziel - GETAN

(2) Wählen Sie das Datum - GETAN

(3)Suche Bus -GETAN

(4)Ansicht-Sitze & Select- ich hier Getroffen

Nun als Ergebnis einer Suche, habe ich eine Liste der Busse mit der option zum anzeigen der Sitze.
die Liste der Busse sind in einem dynamic-DataTable, die enthält ein Bild namens " anzeigen seat' in jeder Zeile. Ein Klick auf die viewseat-Bild wird mir das Sitz-layout, wo ich auswählen kann das Sitze. fand die viewseat-Bilder sind mit verschiedenen id ' s & die gleichen Klasse name. Jetzt muss ich zu suchen Sie, und klicken Sie auf die viewseat-image je nachdem, was ich will, mittels seiner id.

Aber die situation ist

* die Daten-Tabelle ist dynamisch, Sodass die id ' s verändern, die mir nicht erlaubt, Sie durch eine statische id.

* id ist die einzige Sache, die Codierung zu unterscheiden, die viewseat-Bild von einem anderen. so kann ich es gefunden nur wenn ich die id korrekt.

Nun meine Idee ist es, bekommen der Laufzeit-id 's von allen viewseat-Bilder, mit dem eindeutigen Klassennamen und speichern Sie in Variablen und verwenden Sie die id' s um das element zu suchen.

Also lassen Sie mich wissen, wenn es keine Möglichkeit zu Holen Sie sich die IDS aller Bilder in die Daten-Tabelle, mit den Namen der Klasse.

  • Haben Sie versucht, mit einem anderen Selektor anstatt die ID für die Sitze? Xpath, CSS, etc. Wenn man eine html-code-snippet als Teil deiner Frage wird es leichter sein, Sie zu unterstützen.
  • Ich versuchte zu. aber ich konnte nur finden, ID & class-Namen im HTML. hier ist der HTML-code für eine viewseat-Bild, das oben erwähnt wird.. <a id="100001610410140976/2013-11-07" class="pop-up viewSeatsButtonStyle" href="javascript:void(0);">View seats</a>
  • Es gibt auch andere Auswahlen als nur die ID, name, classname etc. Manchmal müssen Sie mit den 'hässlicher' Methoden der xpath oder css. Wenn Sie hinzufügen könnte, in ein html-snippet von einem Teil der Tabelle, anstatt nur von diesem Anker kann ich versuchen, und zeigen Sie in die richtige Richtung.
  • danke @MarkRowlands. auch ich sah für Klassenname,name,cssSelector. aber Couln ' T finden. Und unsere Entwickler sind mit hte DataTable anstelle der Grid-Ansicht zeigen dieser Liste.Also HTML-snippet wird der Tisch zu hart für Sie, wenn geben, da es enthält eine Hölle outa css-tags. damit gebe ich Ihnen die übersicht der Tabelle. Die Tabelle enthält Spalten wie REIST NAMEN, DEP ZEIT, ARRIV ZEIT, PREIS,schließlich VIEWSEAT Bild.
  • also ich gebe dir den Ausschnitt für Reiseveranstalter & viewSeat allein. <a id="103838910410032127" class="cancel cancelonwards" name="2013-11-07" href="#" style="color:#4A5892;font-size:11px;font-family:Verdana;font-weight:200;">Canc.Policy</a> <a id="103838910410032127/2013-11-07" class="pop-up viewSeatsButtonStyle" href="javascript:void(0);">View seats</a>
  • Ok können Zurückspulen, weil, leider, ich bin verwirrt von dem, was Sie gesagt haben. Egal. Ihre ursprüngliche Frage war, wie man die Sitze und klicken Sie auf Sie. Wenn ich verfolgt habe deine Beschreibung richtig, der Sitz-Elemente sollten in der 'View seats' element. S0 - Webdriver element = driver.findElement(By.linkText("View seats")); List<WebElement> seats = element.findElements(By.xpath("//the-xpath-tag-for-each-seat"));

InformationsquelleAutor Rajesh S | 2013-11-07
Schreibe einen Kommentar