簡體   English   中英

如何比較字符串列表中的元素與字符串列表?

[英]How to compare elements inside List of strings with Array List of string?

我已經將產品添加到我的購物籃中並在列表中列出了他們的URL,並希望根據產品的String []驗證這些產品,這些產品在z String []中向后存儲,因此這里的最后一項是列表中的第一項。 。項目數為3,下面的代碼適用於2個項目,並在第三個項目的assert方法中拋出調用異常

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");
    }

如果您不關心訂單,但關於goods列表與actualItems之間的匹配,您可以這樣做:

  1. 將輸入數組String[] goods轉換為某個集合,例如List 讓我們稱之為goodsList
  2. goodsList ,刪除同樣在actualItems中的所有項目。

    • 如果結果集為空,則表示goodsList中的所有項目也在actualItems
    • 如果結果集是不是空的,這將包含缺少的產品清單actualItems比較goodsList
  3. 您也可以執行相反的操作:從actualItems中刪除goodsList包含的所有項目。 這為您提供了提供列表中不存在的項目列表。

碼:

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
    }
  1. 在進行循環之前,您必須檢查goodsactualItems的大小。 確保數組和列表具有相同的大小,並且它們都不為null或為空。

  2. 函數listItems.get(i)getAttribute("href")可以返回null值,請在添加到列表之前檢查它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM