如何使用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')]]"));
答案 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 string和Getting attribute using XPath)
driver.findElement(By.xpath("//*[contains(@data-id, 'table1')]/@data-id"));