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



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

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

这段代码给了我两个列表,即myData和lineText。myData值来自excel工作表,并存储在字符串的数组列表中。lineText来自门户网站,是门户网站上显示的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

最新更新