Como comparar elementos dentro Lista de cordas com matriz de lista de corda?

Karma Abdelazeez:

Eu adicionei produtos ao meu cesto e listou sua URL em uma lista e quiser verificar estes produtos contra dada String [] de produtos os itens são armazenados para trás em z String [] de modo que o último item aqui é o primeiro item na lista. . o número de itens é de 3 e abaixo código funciona para 2 itens e lançar exceção invoker no método assert no terceiro item

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 .:

Se você não se importa com a ordem, mas sobre o jogo entre a lista fornecida de goodse actualItems, você pode fazer isso:

  1. Converter matriz de entrada String[] goodsem alguns recolha, por exemplo List. Vamos chamá-lo goodsList.
  2. A partir goodsList, remover todos os itens que também estão na actualItems.

    • Se conjunto resultante é vazio, significa todos os itens de goodsListtambém estão actualItems.
    • Se conjunto resultante não está vazio, ele irá conter uma lista de itens que estão faltando em actualItemscomparação comgoodsList
  3. Você também pode fazer o inverso: de actualItems, remover todos os itens que também estão contidos no goodsList. Isso dá-lhe lista de itens que não estavam presentes na lista fornecida.

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
    }

Acho que você gosta

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