How to get HTML5 data attribute using xpath?

Bala picture Bala · Feb 11, 2014 · Viewed 37k times · Source

How do I get the first table (table1) using 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>

I am able to get all data-id elements but I want to filter within it for text table1 to get the exact element.

This did not work!

driver.findElement(By.xpath("//@*[starts-with(name(),'data-id') [contains(text(),'table1')]]")); 

Answer

Moritz Petersen picture Moritz Petersen · Feb 11, 2014

You get the table like this:

//span[@data-id='table1']/table

Select the data-id attribute and get the child element of name table.