我有一份清单,我收集了不断变化的股票价格清单
列表listOfLastPrice1;
我知道这个清单并不是一成不变的,因为股票的价格并不是一成不变的。这意味着如果我现在打印它,并将在5分钟内再次打印,值将会改变。为什么?因为这是一个直接连接到DOM的WebElement列表。
我创建了第二个列表
ArrayList listCopyLastPrice1 = new ArrayList();
我想将WebElement列表中的所有值复制到String列表中。 我该怎么做?
我尝试了几次尝试,但没有成功
{{1}}
答案 0 :(得分:1)
迭代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());
答案 1 :(得分:1)
否,您无法在字符串的列表中复制 WebElement 的列表 类型。试图提出ClassCastException
。但您可以在字符串类型列表中存储 WebElements 的任何属性(例如id,name,innerText,innerHTML),如下所示:
$xmlFile.start.'start.List'