[英]How do I remove repeated WebElement from ArrayList Selenium WebDriver JAVA?
我有一个WebElement
的ArrayList
,我想从中删除重复的字符串。 我怎样才能做到这一点? 好心提醒。 谢谢。
HTML:
<li data-id="20151105031XJ500wh0001" data-istrace="0" class="evenTr first">
<span class="wd1">2015-11-05 16:10:58</span>
<span class="wd5">3D福彩</span>
<span title="一码不定胆">一码不定胆</span>
<span class="wd2">2015302</span>
<span class="wd3">元</span>
<span class="grid-toggle" alt="号码详情:">
<div class="wrapbox">
<em alt="2">2</em>
</div>
</span>
<span class="wd4">1</span>
<span>¥2</span>
<span>¥0</span>
<span class="wd4">未开奖</span>
<span alt="开奖号码:"></span>
<span class="wd3">否</span>
</li>
这是我的代码:
List<String> spanText = new ArrayList<String>();
List<WebElement> we = driver.findElements(By.xpath("//li/span[@alt='号码详情:']"));
Set<WebElement> hs = new LinkedHashSet<WebElement>();
hs.addAll(we);
System.out.print("Value of addall" + hs + "----");
we.clear();
we.addAll(hs);
System.out.print("Value of we" + we + "----");
for (WebElement w : we)
{
spanText.add(w.getText());
System.out.print("Value of" + spanText + "done - ");
}
我得到的结果是重复的,我只需要该值:
Value of[2, 047, 查看全部, 28, 18, 18, 18, 28, 28, 28]
对话框元素的图像:
基本上,您想遍历WebElement
的List
并查看.getText()
是否已包含在Set
。 如果不是,则添加它。
List<WebElement> elements = driver.findElements(By.xpath("//li/span[@alt='号码详情:']"));
Set<String> hs = new LinkedHashSet<>();
for (WebElement element : elements)
{
if (!hs.contains(element.getText()))
{
hs.add(element.getText());
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.