gpt4 book ai didi

java - Selenium WD |如何将 WebElement 列表中的所有值复制到字符串列表中?

转载 作者:行者123 更新时间:2023-12-02 02:17:04 24 4
gpt4 key购买 nike

我有一个列表,我收集了不断变化的股票价格列表

List listOfLastPrice1;

我知道这个列表不是恒定的,因为股票的价格不是恒定的。这意味着如果我现在打印它,并在 5 分钟后再次打印它,值就会改变。为什么?因为这是一个直接连接到 DOM 的 WebElement 列表。

我创建了第二个列表

ArrayList listCopyLastPrice1 = new ArrayList();

我想将 WebElement 列表中的所有值复制到 String 列表中。我该怎么做?

我尝试了多次但没有成功

package TestMain;

import java.util.ArrayList;
import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;

import PageObjects.Editions;

public class Test {

public void getList(WebDriver driver) {



driver.get("https:www.investing.com/Markets");
List <WebElement> listOfLastPrice1;
listOfLastPrice1= driver.findElements(By.cssSelector("[data-column-name='last'][class*='pid']"));

ArrayList<String> listCopyLastPrice1 = new ArrayList<String>();

//..........

}

}

最佳答案

迭代WebElement列表并将值添加到String列表

List <WebElement> listOfLastPrice1;
listOfLastPrice1= driver.findElements(By.cssSelector("[data-column-name='last'][class*='pid']"));

List<String> listCopyLastPrice1 = new ArrayList<String>();

for (WebElement element : listOfLastPrice1) {
listCopyLastPrice1.add(element.getText());
}

编辑:

从 Java 1.8 开始,您可以使用 Stream API 将 WebElement 列表更改为 String 列表,如下所示:

List<String> listOfLastPrice1WithStrings = driver.findElements(By.cssSelector("[data-column-name='last'][class*='pid']"))
.stream()
.map(x -> x.getText())
.collect(Collectors.toList());

关于java - Selenium WD |如何将 WebElement 列表中的所有值复制到字符串列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49167636/

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