首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用for循环从任意大小的列表中提取多个WebElements

使用for循环从任意大小的列表中提取多个WebElements
EN

Stack Overflow用户
提问于 2019-07-26 14:45:34
回答 2查看 103关注 0票数 0

我试图使用不是固定长度的xpath从列表中获取特定的web元素。

我使用的xpath是//*[@id="node-1"]/td[4],其中“节点”可以从1到任何数字。xpath中的其他所有内容都保持不变。

例如,我感兴趣的元素可以在xpath中找到如下所示:

代码语言:javascript
复制
//*[@id="node-1"]/td[4]
//*[@id="node-2"]/td[4]
//*[@id="node-3"]/td[4]
//*[@id="node-4"]/td[4]

但是列表可以有不同数量的节点。

我需要生成一个for循环(在java中),它从“节点-1”开始抓取xpath中的每个webelement到有多少个节点,然后将这些元素放入列表中供以后使用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-26 15:24:36

将这些元素放入列表中供以后使用。

以下是简单的方法。有供以后使用的清单-

代码语言:javascript
复制
List<WebElement> nodelist = driver.findElements(By.xpath("//*[starts-with(@id,'node-')]"));

for (int i = 0; i < nodelist.size(); i++) {
    WebElement node = driver.findElement(By.xpath("//*[@id='node-" + Integer.toString(i) + "']"));
    // do your logic here
}

nodelist是供以后使用的列表。

票数 1
EN

Stack Overflow用户

发布于 2019-07-26 14:58:56

这是一种方法。

代码语言:javascript
复制
int numberOfNodes = driver.findElements(By.xpath("//*[starts-with(@id,'node-')]")).size();

for (int i = 0; i < numberOfNodes; i++) {
        WebElement node = driver.findElement(By.xpath("//*[@id='node-" + Integer.toString(i) + "']"));
        // do your logic here
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57222398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档