Was bedeutet es, wenn doppelter Schrägstrich in XPath zweimal verwendet wird. Angenommen, ich bin mit XPath wieWenn doppelter Schrägstrich (//) in XPath zweimal verwendet wird, was bedeutet das?
//div[@id='add']//span[@id=addone']
Was bedeutet es, wenn doppelter Schrägstrich in XPath zweimal verwendet wird. Angenommen, ich bin mit XPath wieWenn doppelter Schrägstrich (//) in XPath zweimal verwendet wird, was bedeutet das?
//div[@id='add']//span[@id=addone']
Doppelstrich //
jeden Nachkommen Knoten des aktuellen Knotens in dem HTML-Baum, der den Locator feets.
Ein einziger Schrägstrich /
bedeutet Knoten, der ein direktes Kind des Stroms ist.
//div[@id='add']//span[@id=addone']
wird
<div id="add">
<div>
<span id="addone">
</div>
</div>
Und
<div id="add">
<span id="addone">
</div>
//div[@id='add']/span[@id=addone']
machen nur den zweiten HTML-Baum macht.
Wenn Sie dies haben.
<div id='add'>
<ul>
<li>
<span id='add one' />
</li>
</ul>
</div>
Dann //div[@id='add']//span[@id='addone']
wird in der Spanne zur Folge haben, da die zweiten //
bedeutet, dass Sie für jedes Kind in Bezug auf div[@id='add']
suchen, die span[@id='add one']
ist.
Wenn Sie einen Schrägstrich //div[@id='add']/span[@id='addone']
verwenden würden, dann würden Sie ihn natürlich nicht finden, denn dann suchen Sie nach einem direkten Kind, und Sie müssten //div[@id='add']/ul/li/span[@id='addone']
verwenden. So ist die zweite //
sehr nützlich, um zusätzliche Hierarchie in Ihren XPaths zu vermeiden.
Ich habe noch eine Frage. Auf der Webseite gibt es die Schaltfläche "Suchen". Wenn ich darauf klicke, werden alle Ergebnisse angezeigt. Die Bedingung ist nun, wenn Daten vorhanden sind, dann werden Daten in der Zeile angezeigt, aber wenn Daten nicht vorhanden sind, wird der Text 'Kein Element gefunden' auf der Seite angezeigt. Könnten Sie mir bitte mitteilen, wie ich mit dieser Situation umgehen soll?\t Ich habe versucht, mit Wenn-Else-Bedingung, aber es zeigt Element nicht gefunden Ausnahme. Bitte helfen Sie mir dabei, wie ich Zustandsdaten überprüfen werde, die für bestimmte Elemente nicht gefunden werden. –
Gern geschehen. Bitte [akzeptieren] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) diese Antwort, wenn es geholfen hat, und eine neue Frage bezüglich der neuen Suchschaltflächenabfrage stellen. –
Ich verwende folgende Logik: If (! = (Webelement.xpath (""). IsDisplayed) Element gefunden else ((webelement.xpath (""). IsDisplayed) Element nicht gefunden. Hier habe ich if else loop zur Überprüfung verwendet Welches Element ist vorhanden, aber wenn Element nicht in der ersten if-Bedingung vorhanden ist, zeigte es "element not found error" an. Bitte schlagen Sie es vor. –
Doppelter Schrägstrich (//
) ist die Abkömmling-oder-Selbst-Achse; es ist kurz für /descendant-or-self::node()/
.
In Ihrem Beispiel XPath:
//div[@id='add']//span[@id='addone']
//
erscheint, alle div
Elemente im Dokument mit einem id
Attributwert gleich 'add'
auswählt.//
erscheint, es wählt alle span
Elemente aus, die Abkömmlinge von jedem der div
Elemente sind, die zuvor ausgewählt wurden.//span[@id='addone']
allespan
Elemente mit @id='addone'
im gesamten Dokument, unabhängig davon, ob sie ein Nachkomme eines div
mit @id='add'
sind.Ich habe noch eine Frage. Auf der Webseite gibt es die Schaltfläche "Suchen", wenn ich darauf klicke, Wenn die Daten vorhanden sind, werden die Daten in der Zeile angezeigt, aber wenn keine Daten vorhanden sind, wird auf der Seite der Text "Kein Element gefunden" angezeigt. Können Sie mir bitte Bescheid geben? Behandle diese Situation. –
Ich habe tr y mit if -else-Bedingung, aber es zeigt Element nicht gefunden Ausnahme. Bitte helfen Sie mir dabei, wie ich Zustandsdaten überprüfen werde, die für bestimmte Elemente nicht gefunden werden. –
Gern geschehen. Bitte [** accept **] (http://meta.stackoverflow.com/q/5234/234215) diese Antwort, wenn es geholfen hat, und eine neue Frage bezüglich der neuen Suchschaltflächenabfrage stellen. Stellen Sie sicher, dass ein [mcve] enthalten ist, der zeigt, dass Ihr XPath nicht das auswählt, was Sie möchten. Vielen Dank. – kjhughes
Tushar K, wurde Ihre Frage beantwortet? Wenn dem so ist, bitte [** accept **] (http://meta.stackoverflow.com/q/5234/234215) die Antwort, die du am hilfreichsten gefunden hast. Vielen Dank. – kjhughes