如何通过id的存在找到页面上的所有WebElements?

时间:2012-10-12 09:47:38

标签: selenium webdriver selenium-webdriver xpath

我知道我可以通过id找到元素:

driver.findElement(By.xpath("//*[@id='some_id']"));

我可以使用此id找到所有元素,但我想查找具有id属性的所有元素。我正在寻找类似的东西:

driver.findElements(By.xpath("//*[@id]"));
// or
driver.findElements(By.xpath("//*[@id='*']"));
// or
driver.findElements(By.xpath("//*[contains(@id)]"));

我正在使用Java。谢谢!

UPD:我唯一的解决方案是通过"//*"获取所有元素,浏览它们并获取id属性。有没有办法一次性获取所有属性,例如来自Java的"//*@A"

2 个答案:

答案 0 :(得分:1)

元素的属性A,其中A包含't'

//E[contains(@A,'t')]/@A 

//E[contains(@A,'t')]@A 

任何元素的属性A

//*/@A 

//*@A

所以我也使用java。因此,如果您需要查找具有id属性的所有元素,您只需使用

即可
driver.findElements(By.xpath(//*@id))

希望这会对你有所帮助。 另外看here。适用于xpath和css选择器的精彩手册

答案 1 :(得分:1)

你试过"//*[contains(@id, '')]"

吗?