Как получить атрибут данных HTML5 с помощью xpath?

как получить первую таблицу (table1) с помощью xpath для Webdriver?

<span id="dynamically generated id" data-id="table1">
  <table>
  ...
  </table>
</span>

<span id="dynamically generated id" data-id="table2">
  <table>
  ...
  </table>
</span>

Я могу получить все data-id элементы, но я хочу фильтровать в нем текст table1 для того чтобы получить точный элемент.

это не работа!

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

4 ответов


вы получаете таблицу, как это:

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

выберите data-id атрибут и получить дочерний элемент name table.


отвечая на мой собственный вопрос...Это, кажется, получить точный элемент.

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

Я думаю, вы также можете использовать cssSelector

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

Try (построил это объединение xpath: найдите узел с заданным атрибутом, значение которого содержит строку и получение атрибута с помощью XPath)

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