2015-11-06 68 views
0

我有ArrayListWebElement,我想从中删除重复的字符串。我怎样才能做到这一点?好心提醒。谢谢。如何从ArrayList Selenium WebDriver JAVA中删除重复的WebElement?

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] 

图片:

Image WebElement

回答

0

基本上要通过WebElementList在S环,看看.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()); 
    } 
} 
相关问题