作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个列表,我收集了不断变化的股票价格列表
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/
我是一名优秀的程序员,十分优秀!