Comment obtenir la première table (table1) utilisant xpath pour Webdriver?
<span id="dynamically generated id" data-id="table1">
<table>
...
</table>
</span>
<span id="dynamically generated id" data-id="table2">
<table>
...
</table>
</span>
Je peux obtenir tous les éléments data-id
mais je veux y filtrer le texte table1
pour obtenir l'élément exact.
Cela n'a pas fonctionné!
driver.findElement(By.xpath("//@*[starts-with(name(),'data-id') [contains(text(),'table1')]]"));
Répondre à ma propre question ... Cela semble obtenir l'élément exact.
driver.findElement(By.xpath("//*[@data-id='table1']"))
Vous obtenez la table comme ceci:
//span[@data-id='table1']/table
Sélectionnez l'attribut data-id
et obtenez l'élément enfant de nom table
.
Je pense que vous pouvez aussi utiliser la variable cssSelector
driver.findElement(By.cssSelector("[data-id='table1']"));
Try (construit ceci en combinant xpath: recherche un noeud ayant un attribut donné dont la valeur contient une chaîne et Obtenir un attribut avec XPath )
driver.findElement(By.xpath("//*[contains(@data-id, 'table1')]/@data-id"));