найти дубликат из getText с помощью Selenium Web-драйвера - PullRequest
0 голосов
/ 03 января 2019

В этом .getText () есть более 100 записей. Мне нужно найти дубликат записи, если таковые имеются.

    // This will expand all the arrow
    List<WebElement> arrowdown1 = driver.findElements(By.xpath("//*[@class='toggle-children']"));   
    for (int j = 1; j <= arrowdown1.size(); j++) {
        arrowdown1 = driver.findElements(By.xpath("//*[@class='toggle-children']"));
        WebElement editicon = driver.findElement(By.xpath("(//*[@class='toggle-children'])[" + j + "]"));
        // This will print all the name text I need to find duplicate text from this 
        //This .getText() there are over 100 entry in this I need to find duplicate entry if any.


        String porfolioName = driver.findElement(By.xpath("(//*[@class='mat-checkbox-label'])[" + j + "]")).getText();
        click1(driver, editicon, porfolioName);

ВЫВОД Из этого вывода мне нужно найти дубликат текста APAC (L1 - 400).APAC NPC (L2 - 2) .APAC NPC (L3 - 21). АНТАРКТИКА (L4 - AQ). БУВЕТСКИЙ ОСТРОВ (L4 - BV) .БРИТАНСКИЙ ТЕРРИТОРИЙ ИНДИЙСКОГО ОКЕАНА (L4 - IO). РОЖДЕСТВЕНСКИЙ ОСТРОВ (L4 - CX) .COCOS(КИЛИНГ) ОСТРОВА (THE) (L4 - CC). ФРАНЦУЗСКАЯ ПОЛИНЕЗИЯ (L4 - PF). ФРАНЦУЗСКИЕ ЮЖНЫЕ ТЕРРИТОРИИ (T (L4 - TF). СЛУЖЕБНЫЙ ОСТРОВ И MCDONALD ISLA (L4 - HM). КИРИБАТИ (L4 - KI).ОСТРОВА МАРШАЛА (THE) (L4 - MH). МИКРОНЕЗИЯ (ФЕДЕРАЛЬНЫЕ СОСТОЯНИЯ O (L4 - FM) .NAURU (L4 - NR). НОВАЯ КАЛЕДОНИЯ (L4 - NC) .NIUE (L4 - NU)

1 Ответ

0 голосов
/ 04 января 2019

Попробуйте этот код:

    private <T> Set<T> findDuplicates(Collection<T> collection) {

    Set<T> duplicates = new LinkedHashSet<>();
    Set<T> uniques = new HashSet<>();

    for(T t : collection) {
        if(!uniques.add(t)) {
            duplicates.add(t);
        }
    }

    return duplicates;
}

Или, если вы знакомы с потоками:

private <T> Set<T> findDuplicates(Collection<T> collection) {
    Set<T> uniques = new HashSet<>();
    return collection.stream()
        .filter(e -> !uniques.add(e))
        .collect(Collectors.toSet());
}
...