如何使用findElements定位动态id的表元素?

时间:2014-11-13 08:26:13

标签: selenium xpath webdriver

我必须为表的动态ID获取XPATH。我试图得到所有的表格ID,其中有一些文字'使用findElements进入列表。

问题是他们有类似的模式,除了id属性中的数字他们变化

<tr>
<td>
<a id="text-132" </a>
</td>
<a id="text-125" </a>
</td>
<td>
<a id="test-122"</a>
</td>

我编写了以下代码,它没有显示找到xpath的任何错误,但它没有打印,列表大小为0

List<WebElement> my_list = driver.findElements(By.xpath("//*[starts-with(@id, 'text')]"));
    System.out.println("Size: " + my_list.size());

    for (int i=0; i<my_list.size(); i++) {

        System.out.println(my_list.get(i).getText());

    }

1 个答案:

答案 0 :(得分:1)

我更愿意(可能是habbit问题) - alternative- CSS selectors

选择器[attribute*=value]

示例a[href*="w3schools"]

描述:选择其href属性值包含子字符串“w3schools”的每个元素

在您的预测中:

List<WebElement> myList=driver.findElements(By.cssSelector("a[id*=\"text\"]"));

System.out.println("Size: " + myList.size());

希望这会对你有所帮助。