Cómo comparar los elementos dentro de lista de cadenas con un campo de lista de cuerda?

Karma Abdelazeez:

He añadido productos a mi carro y aparece su dirección URL en una lista y que desee comprobar estos productos contra dada String [] de los productos de los elementos se almacenan hacia atrás en z String [] por lo que el último punto aquí es el primero elemento de la lista. . el número de elementos es de 3 y por debajo de código funciona por 2 artículos y lanzar una excepción al invocador del método de aserción en el tercer punto

public void verifyBag(String[] goods) {
    actions.clickOn(By.xpath(bagLocator));
    Arrays.sort(goods);
    List<WebElement> listItems = actions.driver.findElements(By.xpath(bagItems));
    List <String> actualItems = new ArrayList<String>();
    for(int i=0;i<listItems.size();i++)
    {
        actualItems.add(listItems.get(i).getAttribute("href"));
    }
    int j = goods.length-1;
    for(int i=0;i<goods.length;i++) 
    { 

        String actualItem = actualItems.get(i);
        String product = goods[j];
        System.out.println(product);
        //assertTrue(actualItems.get(i).contains(goods[j]));
        assertTrue(actualItem.equals(product));
            j--;        
        } 
        assertEquals(listItems.size(), goods.length,"Assert Number of Items in the Bag");
    }
Kiril S .:

Si no se preocupan por el orden, sino sobre el partido entre proporcionado lista de goodsy actualItems, se puede hacer esto:

  1. Convertir matriz de entrada String[] goodsen un poco de recogida, por ejemplo List. Vamos a llamarlo goodsList.
  2. Desde goodsList, eliminar todos los elementos que también están en actualItems.

    • Si conjunto resultante está vacía, significa que todos los artículos goodsListestán también en actualItems.
    • En caso de resultar conjunto no está vacío, contendrá lista de elementos que faltan en actualItemscomparación congoodsList
  3. También se puede hacer a la inversa: desde actualItems, eliminar todos los elementos que también están contenidos en goodsList. Eso le da lista de elementos que no estaban presentes en la lista proporcionada.

Código:

public void verifyBag(String[] goods) {
    actions.clickOn(By.xpath(bagLocator));
    List<WebElement> listItems = actions.driver.findElements(By.xpath(bagItems));
    List <String> actualItems = new ArrayList<String>();
    for(int i=0;i<listItems.size();i++)
    {
        actualItems.add(listItems.get(i).getAttribute("href"));
    }
    List<String> goodsList = new ArrayList(Arrays.asList(goods));
    goodsList.removeAll(actualItems);
    if(goodsList.size() == 0) {
        // All goods from provided goods list are also in actualItems
    }
    else {
        // Some items didn't match
    }

Supongo que te gusta

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