wake-up-neo.com

Wie erhalte ich ein HTML5-Datenattribut mit xpath?

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

Beantworten meiner eigenen Frage ... Dies scheint das genaue Element zu erhalten.

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

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.

19
Moritz Petersen

Ich denke, Sie können auch die cssSelector verwenden.

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

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