首页 > 解决方案 > Arraylist 比较失败

问题描述

我正在尝试将预期的字符串值列表与列表中的实际字符串值进行比较。下面是我的代码。尽管expList列表和实际列表匹配,但布尔值返回 false 并且断言抛出错误。请让我知道我哪里错了。

public void verifyFilesInFolder(String folder, String... files) {
    navigateToFolder(folder);
    List<String> expList = Arrays.asList(files);
    assertTrue("expected List did not match the actual list ", verifyTheFileNames(locator, expList));
}


public boolean verifyTheFileNames(String locator, List<String> expList) {
    List<WebElement> elements = driver.findElements(By.xpath(locator));
    ArrayList<String> actual = new ArrayList<String>();
    for (int i = 0; i < elements.size(); i++) {
        actual.add(elements.get(i).getText());
    }
    Collections.sort(actual);
    System.out.println("Actual List: " + actual);
    Collections.sort(expList);
    System.out.println("Expected List: " + expList);
    boolean flag = actual.equals(expList);
    if (flag)
        System.out.println("Actual and Expected List are same");
    return flag;

}

输出:

实际列表:[blank.html,blank.jpg,blank.mov,blank.mp3,blank.txt]
预期列表:[blank.html,blank.jpg,blank.mov,blank.mp3,blank.txt]

标签: javaselenium

解决方案


通过将文件从 String 更改为 String[] 解决了问题。

前 :

String files = "blank.html, blank.jpg, blank.mov, blank.mp3, blank.txt";

后 :

String[] files = {"blank.html", "blank.jpg", "blank.mov", "blank.mp3", "blank.txt"};

推荐阅读