Finde ein Element per Text und erhalte xpath - selen webdriver junit

8

Ich habe eine Tabelle mit 9 Zeilen und 6 Spalten auf meiner Webseite. Ich möchte nach einem Text "MakeGoodDisabled-Programwise_09_44_38_461 (n)" suchen und den xpath der Zelle abrufen. Ich habe Folgendes verwendet, aber es schlägt fehl, weil es den Text auf der Seite nicht finden kann. Können Sie bitte helfen? Ich benutze Selenium Webdriver Junit, um dies zu programmieren.

%Vor%     
Nandini Joshi 29.08.2013, 12:08
quelle

10 Antworten

0
  

Meine Absicht ist es, einen Text in einer Tabelle zu finden und den entsprechenden Wert für die nächste Spalte zu erhalten   die gleiche Reihe. Ich dachte, dass ich die gefundene Spaltennummer ersetzen werde, indem ich den xpath mit abrufe   die Spaltennummer, die ich möchte. Gibt es einen besseren Weg, es zu tun?

Natürlich gibt es einen Weg. Hier ist eine mögliche Lösung.

Holen Sie sich alle Zeilen:

%Vor%

Jetzt können Sie einfach zu diesem bestimmten Index für die anderen Zeilen wechseln; Oder Sie können xpath wie .../tr/td[voila] verwenden, um alle Zellen für diese bestimmte Spalte abzurufen.

Ich habe einen Ansatz geschrieben, bitte nimm es nicht als echten Arbeitscode!

    
coding_idiot 30.08.2013, 02:45
quelle
9

Sie können dies auch verwenden, um nach oben zu crawlen und den xpath zu generieren:

Rufen Sie die folgende Methode mit

auf %Vor%

Die Ausgabe wird etwa lauten:

%Vor%

METHODE

%Vor%     
Scott Izu 22.12.2014 23:06
quelle
6

Der XPath eines Elements ist kein definitiver Wert. Ein Element kann von vielen XPaths gefunden werden.

Sie können Webdriver nicht verwenden, um einen XPath zu extrahieren, und selbst wenn Sie könnten, ist es unwahrscheinlich, dass es der effizienteste oder sinnvollste ist, der nur vom Automator definiert werden kann.

    
Robbie Wareham 29.08.2013 12:19
quelle
6

Die Frage, die Sie gestellt haben, ergibt für mich keinen Sinn. Ich schätze, es könnte einen starken Grund geben, dass du es "willst"!

Ihre Codezeile

%Vor%

gibt nichts zurück, da in HTML-Elementen kein Attribut "xpath" vorhanden ist. Bitte machen Sie Ihre Grundlagen klar, was xpath bedeutet?

wenn ich ein HTML-Element habe, wie unten gezeigt

%Vor%

Ich kann die Werte von Attribut mit

erhalten %Vor%

Dies gibt mir den Wert des 'value' Attributs

oder

%Vor%

wie oben!

    
Abhishek Singh 29.08.2013 12:27
quelle
0

Wenn Sie ein Attribut für Ihr Element mit dem Namen "xpath" haben, können Sie Folgendes tun:

%Vor%

Obwohl Sie durch die Geräusche davon versuchen, etwas anderes hier zu erreichen, haben Sie noch nicht mit uns geteilt. Möchtest du, dass Selen einen XPath für dich erstellt? Es kann nicht.

    
joostschouten 29.08.2013 12:22
quelle
0

Sie können XPaths mit JavaScript erzeugen:

%Vor%

Wenn Sie dieses JavaScript in einen String namens getXPaths und dann in Java einfügen, können Sie es wie folgt ausführen:

%Vor%

Es gibt ein Array und nicht einen String zurück, weil wenn Ihre Seite zufällig weniger oder mehr Elemente mit passendem Tagname / innerText hat, Sie es wissen wollen. Sie können an der Größe des Arrays erkennen.

    
Pat Meeker 29.08.2013 16:16
quelle
0

Fast die gleiche Situation für mich:

Ich habe ein Element in der Tabelle, aber ich weiß nicht, in welcher Spalte es sich befindet (wie ein Benutzername für alle Benutzernamen). Ich muss bestimmte Zeichenfolge mit Benutzernamen finden und klicken Sie auf "Aktivieren" nur für diesen Benutzer. (Der Benutzername-Text befindet sich in der zweiten Spalte, die td [2] ist und die Schaltfläche in der 5. Spalte findet, die td [5] ist). Also muss ich alle Spalten nacheinander ausführen, um den Benutzer zu finden, und dann auf den Button klicken:

%Vor%     
dred17 03.10.2013 15:54
quelle
0

Verwenden Sie diese Klasse vor dem Iterieren. Wenn Sie dann XPATHIDFromWebElement

finden %Vor%

Eine weitere Wrapper-Klasse zum Generieren von IDs aus dem Dokument wird veröffentlicht unter: Ссылка

    
Scott Izu 12.05.2014 23:21
quelle
0

JavaScript-Funktionen zum Erstellen von XPath

XPath / locator ist eine Möglichkeit, ein Element durch Navigieren durch die Baumstruktur zu adressieren.

Absoluter XPath (/): / html / body / div [5] / div [4]

WebElement XPath:

%Vor%

MouseEvent XPath:

%Vor%

Relativer xpath (//): // div [@ id = 'soziale Medien'] / ul / li [3] / a

// Element.TagName [@ id="idvalue" und @ class="classValue" und text ()="innerHTML data"] ODER können Sie verwenden. (dot),. ist ein Alias ​​für text (), [.="innerHTML data"] Wenn Sie wissen, dass der gesuchte Inhalt irgendwo innerhalb des angegebenen Tags liegt, können Sie diesen verwenden

Beispiel, das in der Konsole ausgeführt wird:

%Vor%     
Yash 25.08.2015 10:36
quelle
0

Ich denke, dass es keine spezielle Funktion gibt, um den xpath des gesuchten Elements zu erhalten. Dazu müssen Sie zuerst das Element manuell finden und dann den xpath durch die getXpath-Funktionen holen.

    
Atif Hussain 18.07.2016 07:42
quelle