gpt4 book ai didi

java - List.get(index) 扩展另一个 List 的 xpath

转载 作者:行者123 更新时间:2023-12-01 19:43:08 24 4
gpt4 key购买 nike

我需要使用另一个列表的值及其循环中的索引来初始化列表

我已经尝试过下面的代码片段:

List <WebElement> row = driver.findElements(By.xpath("//*[@id='row']"));
for (int x=0; x<row.size(); x++){
String value = row.get(x).findElements(xpath to extend that element).get(x).getText() //just a sample manipulation

// THEN HERE'S THE PROBLEM
//I NEED TO EXTEND AGAIN THE LIST TO ANOTHER LIST
List <WebElement> another_row = row.get(x).findElements('//*[@class='house active' or @class='house']//*[contains(@id,'room')]')
//another for loop for another_row
}

问题是row.get(x)部分不工作。我将第一个列表中的所有节点添加到新列表中。

编辑:我的问题有点像 this但在 List <WebElement>并在循环中

最佳答案

您可以通过获取父 xpath,然后将该父 xpath 传递给要获取的子元素的 xpath 来实现。

List<WebElement> parentElements = driver.findElements(By.xpath("xpath of the parent element"));
List<WebElement> childElements = parentElements.get(0).findElements(By.xpath("xpath of the child element"));

如果在您的情况下,您要将第一个列表中的所有节点添加到新的子列表中,那么您可以使用 xpath 中的索引直接获取父级的第一个元素,例如:

WebElement parentElement = driver.findElement(By.xpath("(//*[@id='row'])[1]"));

您还可以参数化元素的索引,例如:

int i = 1;
WebElement parentElement = driver.findElement(By.xpath("(//*[@id='row'])["+i+"]"));

现在使用这个父元素,您可以获取子列表元素,例如:

List<WebElement> childElements = parentElement.findElements(By.xpath("xpath of the child element"));

关于java - List.get(index) 扩展另一个 List <WebElement> 的 xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54600801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com