如何将可迭代元素添加到列表
How to add iterable elements to a List
页面包含多个元素 (9),其字符串值为 km。我需要从每个元素中捕获一个整数。
<li class="specItem___2u4I4" data-qa-selector="spec-mileage"><span class="specDot___2SwMP">•</span> 21.950 km</li>
我的想法是这样的,通过Xpath,getText()找到一个元素列表,然后把它们放到一个列表中。
ArrayList<String> abcd = new ArrayList<>();
for (int i = 1; i <= amountOfElements.size(); i++) {
WebElement e = driver.findElement(By.xpath("(//li[contains(@data-qa-selector, 'spec-mileage')])['" + i + "']"));
abcd.add(e.getText());
}
System.out.println(abcd);
不幸的是,总是 return 列出第一个值九次(按元素数量)。
[•
21.950 公里, •
...
21.950 公里]
如何获取包含不同元素值的列表?
您可以使用 findElements
而不是 findElement
方法。这将为您 return 列出与传递的定位器匹配的所有网络元素。
现在您可以遍历 Web 元素列表,从每个 Web 元素中提取文本。
像这样:
List<String> abcd = new ArrayList<>();
List<WebElement> list = driver.findElements(By.xpath("//li[contains(@data-qa-selector, 'spec-mileage')]"));
for (WebElement el:list){
abcd.add(el.getText());
}
要打印 km 的所有 字符串值,您可以使用 Java8's and and you can use the following :
System.out.println(driver.findElements(By.xpath("//li[@data-qa-selector='spec-mileage']")).stream().map(element->element.getText()).collect(Collectors.toList()));
页面包含多个元素 (9),其字符串值为 km。我需要从每个元素中捕获一个整数。
<li class="specItem___2u4I4" data-qa-selector="spec-mileage"><span class="specDot___2SwMP">•</span> 21.950 km</li>
我的想法是这样的,通过Xpath,getText()找到一个元素列表,然后把它们放到一个列表中。
ArrayList<String> abcd = new ArrayList<>();
for (int i = 1; i <= amountOfElements.size(); i++) {
WebElement e = driver.findElement(By.xpath("(//li[contains(@data-qa-selector, 'spec-mileage')])['" + i + "']"));
abcd.add(e.getText());
}
System.out.println(abcd);
不幸的是,总是 return 列出第一个值九次(按元素数量)。 [• 21.950 公里, • ... 21.950 公里]
如何获取包含不同元素值的列表?
您可以使用 findElements
而不是 findElement
方法。这将为您 return 列出与传递的定位器匹配的所有网络元素。
现在您可以遍历 Web 元素列表,从每个 Web 元素中提取文本。
像这样:
List<String> abcd = new ArrayList<>();
List<WebElement> list = driver.findElements(By.xpath("//li[contains(@data-qa-selector, 'spec-mileage')]"));
for (WebElement el:list){
abcd.add(el.getText());
}
要打印 km 的所有 字符串值,您可以使用 Java8's
System.out.println(driver.findElements(By.xpath("//li[@data-qa-selector='spec-mileage']")).stream().map(element->element.getText()).collect(Collectors.toList()));