Selenio - Cómo omitir el registro del conjunto después de la primera aparición de su

kaustubh:

Tengo una vista de aplicación, donde la lista de artículos que hay. Hay por ejemplo, 10 páginas con 200 registros, 20 registros por página. Deseo que el número de usuarios unqiue asignado. Desde el código de abajo Soy capaz de obtener los registros únicos por página. Pero deseo de conseguir entrada de usuario único en los registros. Así por ejemplo, mientras que la ejecución si no se encuentra el usuario "Jack", por lo que si el mismo usuario se encuentra en las páginas posteriores Yo quiero que esté omitido. ¡Gracias por adelantado!

Guión:

List<WebElement> efirstpagecount = driver.findElements(By.xpath("//*[@id='usersList']/tbody/tr/td[3]"));
Set<String> uniqueUsers = efirstpagecount.stream().map(WebElement::getText).map(String::trim).distinct().collect(Collectors.toSet());   
System.out.println("First page count: "+uniqueUsers.size());
Andrei Suvorkov:

Puede combinar los conjuntos de la siguiente manera:

set1.addAll(set2);

Se añadirá elementos distintos de todos los set2 a un set1. El ejemplo de código:

List<WebElement> efirstpagecount = driver.findElements(By.xpath("//*[@id='usersList']/tbody/tr/td[3]"));
Set<String> uniqueUsers = efirstpagecount.stream().map(WebElement::getText).map(String::trim).distinct().collect(Collectors.toSet());   
System.out.println("First page count: "+uniqueUsers.size());

List<WebElement> esecondpagecount = driver.findElements(By.xpath("//*[@id='usersList']/tbody/tr/td[3]"));
Set<String> uniqueUsers2 = esecondpagecount.stream().map(WebElement::getText).map(String::trim).distinct().collect(Collectors.toSet());
uniqueUsers.addAll(uniqueUsers2); // merge two sets
System.out.println("First and second page count: "+uniqueUsers.size());

o esto:

Set<String> allUsers = new HashSet();
while(true){
  List<WebElement> users = driver.findElements(By.xpath("xpath"));
  allUsers.addAll(users.stream().map(WebElement::getText).map(String::trim).distinct().collect(Collectors.toSet()));
  // move to next page if exists, else break loop
}
System.out.println("All pages count: " + allUsers.size());

Rendimiento PS de addAll()es O (N):

// implementation of addAll() method
public boolean addAll(Collection<? extends E> c) {
    boolean modified = false;
    for (E e : c)
        if (add(e))
            modified = true;
    return modified;
}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=219159&siteId=1
Recomendado
Clasificación