web-dev-qa-db-fra.com

Comment obtenir l'attribution de données HTML5 en utilisant xpath?

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')]]")); 
11
Bala

Répondre à ma propre question ... Cela semble obtenir l'élément exact.

driver.findElement(By.xpath("//*[@data-id='table1']"))
8
Bala

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.

19
Moritz Petersen

Je pense que vous pouvez aussi utiliser la variable cssSelector

driver.findElement(By.cssSelector("[data-id='table1']"));
1
Adam Bilinski

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"));
0
Uri Agassi