Finden Sie ein element von text und xpath - selenium webdriver junit
Ich habe eine Tabelle mit 9 Zeilen und 6 Spalten in meiner Webseite. Ich Suche nach dem text "MakeGoodDisabled-Programwise_09_44_38_461(n)" und nutzen Sie die xpath-von der Zelle. Benutzt habe ich die folgenden, aber es funktioniert nicht, weil es nicht in der Lage zu finden, den text auf der Seite. Können Sie bitte helfen? Ich bin mit Selenium Webdriver Junit, code dies.
List < WebElement > links = driver.findElements(By.tagName("td"));
Iterator < WebElement > itr = links.iterator();
while (itr.hasNext()) {
String test = itr.next().getText();
if (test.equals("MakeGoodDisabled-Programwise_09_44_38_461(n)")) {
String xpath = driver.findElement(By.name(test)).getAttribute("xpath");
System.out.println(xpath);
}
}
- Was versuchen Sie zu tun ?
- Ansatz zur Lösung des Problems in der hand, ist falsch! Würde der Geist Sie diskutieren das problem, wir sind Ihnen ein guter Ansatz, wie zu Verfahren ist (don ' T erwarten, dass viel code, eine schnelle google gibt viel)!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Natürlich gibt es einen Weg. Hier ist eine mögliche Lösung.
Bekommen alle Zeilen:
Nun können Sie einfach bewegen zu dieser bestimmten index für die anderen Zeilen; oder Sie können mithilfe von xpath-wie
.../tr/td[voila]
zum abrufen aller Zellen, die für die jeweilige Spalte.Ich geschrieben habe, einen Ansatz, bitte nehmen Sie nicht real zu sein-arbeiten-code!
Können Sie diese auch verwenden zu kriechen und Generierung der xpath:
Rufen Sie die Methode unten, mit
Ist die Ausgabe etwas wie:
METHODE
Die Frage, die Sie gebeten macht keinen Sinn für mich. Ich denke, es könnte ein starker Grund für Sie zu "wollen, es zu tun' !
Ihre Linie der code
wird nicht wieder alles, denn es gibt kein Attribut "xpath" in html-Elementen. Bitte Holen Sie sich Ihre Grundlagen klar auf, was xpath bedeutet??
wenn ich ein html-element wie unten dargestellt
ich kann die Werte der attribute mithilfe
Dieser wird mir ein Wert von 'value' - Attribut
oder
gleiche wie oben !
Den XPath eines Elements ist nicht eine definitive Wert. Ein element kann gefunden werden, indem viele XPaths.
Können Sie nicht verwenden, Webdriver zum extrahieren eines XPath und selbst wenn man das könnte, es ist unwahrscheinlich, dass die meisten effiziente und sinnvolle, das kann nur definiert werden, indem man den automator.
Erzeugen können Sie XPath mit JavaScript:
Wenn Sie, dass JavaScript in einem String namens
getXPaths
dann in Java auszuführen, können Sie es wie folgt:Gibt es ein array statt eines Strings, weil, wenn Ihre Seite passiert haben, weniger oder mehr Elemente mit passenden tagname/innerText, werden Sie wissen wollen. Man kann sagen, durch die Größe des Arrays.
JavaScript-fnction zu generieren XPath
XPath/- Verzeichnis ist eine Art der Auseinandersetzung ein element in der Navigation durch die Baumstruktur.
Absoluter XPath (/): /html/body/div[5]/div[4]
WebElement XPath:
MouseEvent XPath:
Relative xpath (//): //div[@id='social-media']/ul/li[3]/a
//Element.TagName[@id="idvalue" und @class="classValue" und text()="innerHTML data"]
ODER Sie verwenden können .(Punkt), . ist ein alias für text(), [.="innerHTML data"] wenn Sie wissen, die Inhalte, die Sie suchen, ist irgendwo in den angegebenen tag, die Sie verwenden können, diese
Beispiel ausführen in der Konsole:
Vorausgesetzt, Sie haben ein Attribut auf ein element mit dem Namen "xpath" können Sie Folgendes tun:
Aber von den Klängen von ihm Sie versuchen, etwas zu erreichen, sonst hier haben Sie nicht gemeinsam mit uns noch. Willst du Selen, um erstellen Sie einen xpath für Sie? Das kann es nicht.
Fast die gleiche situation für mich:
Habe ich ein element in der Tabelle, aber ich weiß nicht, in welcher Spalte er sich befindet (wie einige Benutzernamen über alle Benutzernamen). Ich brauche, um zu finden, die bestimmten string mit Benutzernamen und klicken Sie auf "aktivieren" - button nur für diesen Benutzer. (der Benutzername text findet in der 2. Spalte die td[2] und die Taste befindet sich in der 5. Spalte die td[5]). Also muss ich ausführen, alle Spalten eins nach dem anderen, suchen Sie den Benutzer und klicken Sie dann auf die Schaltfläche:
Bevor die Iteration, die diese Klasse verwenden. Dann, wenn Sie findXPATHIDFromWebElement
Anderen wrapper-Klasse zum generieren von ids Dokument, veröffentlicht unter: http://scottizu.wordpress.com/2014/05/12/generating-unique-ids-for-webelements-via-xpath/
Ich denke, Ihre ist keine spezielle Funktion zur Verfügung, um den xpath der gesuchten element. Für diese, müssen Sie Zuerst finden Sie das element manuell dann erhalten Sie den xpath durch getXpath Funktionen.
Meine java-Methode auf, um absolute xpath:
und relative xpath (das war die erste 🙂 ):