繁体   English   中英

如何从ArrayList Selenium WebDriver JAVA中删除重复的WebElement?

[英]How do I remove repeated WebElement from ArrayList Selenium WebDriver JAVA?

我有一个WebElementArrayList ,我想从中删除重复的字符串。 我怎样才能做到这一点? 好心提醒。 谢谢。

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

基本上,您想遍历WebElementList并查看.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM