Wie erhalte ich die erste Tabelle (table1) mit xpath for Webdriver?
<span id="dynamically generated id" data-id="table1">
<table>
...
</table>
</span>
<span id="dynamically generated id" data-id="table2">
<table>
...
</table>
</span>
Ich kann alle data-id
-Elemente abrufen, möchte jedoch nach table1
-Elementen filtern, um das genaue Element zu erhalten.
Das hat nicht geklappt!
driver.findElement(By.xpath("//@*[starts-with(name(),'data-id') [contains(text(),'table1')]]"));
Beantworten meiner eigenen Frage ... Dies scheint das genaue Element zu erhalten.
driver.findElement(By.xpath("//*[@data-id='table1']"))
Sie bekommen den Tisch so:
//span[@data-id='table1']/table
Wählen Sie das data-id
-Attribut aus, und rufen Sie das untergeordnete Element mit dem Namen table
ab.
Ich denke, Sie können auch die cssSelector
verwenden.
driver.findElement(By.cssSelector("[data-id='table1']"));
Try (gebaut wurde dies durch Kombinieren von xpath: Finden eines Knotens, der ein bestimmtes Attribut enthält, dessen Wert einen String enthält und Getting-Attribut mit XPath )
driver.findElement(By.xpath("//*[contains(@data-id, 'table1')]/@data-id"));