在Java Selenium中比较字符串的两个ArrayList中的值

在Java Selenium中比较字符串的两个ArrayList中的值,java,arraylist,testng,Java,Arraylist,Testng,我有两个要比较的字符串数组列表。代码如下: ArrayList<String> myData = objExcelData.GetRows("Dashboard", 1); System.out.println(myData); List<WebElement> uiList = driver .findElements(By.xpath("//div[@class='mach

我有两个要比较的字符串数组列表。代码如下:

ArrayList<String> myData = objExcelData.GetRows("Dashboard", 1);
        System.out.println(myData);

        List<WebElement> uiList = driver
                .findElements(By.xpath("//div[@class='machineblockdiv cursorpointer machinblockheight']//h4"));

        ArrayList<String> lineText = new ArrayList<String>();

        for (int i = 0; i < uiList.size(); i++) {
            lineText.add(uiList.get(i).getText());

        }
        System.out.println(lineText);
ArrayList myData=objExcelData.GetRows(“仪表板”,1);
System.out.println(myData);
列表uiList=驱动程序
.findElements(By.xpath(“//div[@class='machineblockdiv游标指针MachineBlockHeight']//h4”);
ArrayList lineText=新的ArrayList();
对于(int i=0;i
这段代码给了我两个列表,即myData和lineText。myData值来自excel工作表,存储在字符串的arraylist中。 lineText来自web门户,是门户上显示的web元素的文本。 我想比较通过excel传递的测试数据和门户上显示的数据。 两者应该匹配。如果没有,那么我的测试就失败了

例如: 我的“myData”数组由{Airway,Finsuc,milestone}组成,我的“lineText”数组列表由{milestone,Jet}组成。 所以这个测试应该失败,因为两个数组列表中的所有值都不相同

在比较了这些之后,我还想在TestNg代码中添加一个断言。
请帮助。

这是否回答了您的问题?
package selenium;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class CompareListsExample {

    public static void main (String[] args) {
        List<String> src = Arrays.asList("FOO", "BAR", "Berlin");
        List<String> trg = Arrays.asList("FOO", "BEAR");
        
        // compare List<String> with List<String>
        System.out.println(src.equals(trg));
        
        // compare String with String inside of the List<String>
        compareListsOfStrings(src, trg);
    }
    
    
    public static void compareListsOfStrings(List<String> sourceList, List<String> targetList) {
        List<String> skippedFromSource = new ArrayList<String>();
        List<String> skippedFromTarget = new ArrayList<String>();
        int maxIndex = 0;
        if (sourceList.size() > targetList.size()) {
            maxIndex = targetList.size();
            for (int i = maxIndex; i < sourceList.size(); i++) {
                skippedFromSource.add(sourceList.get(i));
            }
        }
        else {
            maxIndex = sourceList.size();
            for (int i = maxIndex; i < targetList.size(); i++) {
                skippedFromTarget.add(targetList.get(i));
            }
        }
        for (int i = 0; i < maxIndex; i++) {
            if (!sourceList.get(i).equals(targetList.get(i))) {
                System.out.println("'" + sourceList.get(i) + "' not equals '" + targetList.get(i) + "'");
            }
        }
        if (!skippedFromSource.isEmpty()) {
            System.out.println("Skipped items from source due to different lists size:" + System.lineSeparator() + String.join(System.lineSeparator(), skippedFromSource));
        }
        if (!skippedFromTarget.isEmpty()) {
            System.out.println("Skipped items from target due to different lists size:" + System.lineSeparator() + String.join(System.lineSeparator(), skippedFromTarget));
        }
    }
    
}
false
'BAR' not equals 'BEAR'
Skipped items from source due to different lists size:
Berlin