如何使用xpath获取HTML5数据属性?

时间:2014-02-11 12:35:17

标签: java ruby xpath selenium-webdriver capybara

如何使用xpath for Webdriver获取第一个表(table1)?

<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 个答案:

答案 0 :(得分:20)

你得到这样的表:

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

选择data-id属性并获取名为table的子元素。

答案 1 :(得分:10)

回答我自己的问题......这似乎得到了确切的元素。

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

答案 2 :(得分:1)

我认为你也可以使用cssSelector

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

答案 3 :(得分:0)

尝试(将其组合为xpath: find a node that has a given attribute whose value contains a stringGetting attribute using XPath

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