我怎么能比较两个列表

时间:2015-01-30 06:51:02

标签: selenium-webdriver webdriver

有两个列表,我想比较一下 这些列表是否具有相同的值 我怎么能这样做,请建议

List<WebElement> Gender=wd.findElements(By.xpath(".//*@id='MyMember_GenderId']"));
int genderval=Gender.size();
System.out.println(genderval);
for(WebElement G : Gender ) {
    System.out.println("Gender is :"+G.getText());
}
List<WebElement> Mstatus=wd.findElements(By.xpath(".//*[@id='MyMember_MaritalStatusId']"));
int statusval=Mstatus.size();
System.out.println(statusval);
for(WebElement text : Mstatus ) {
    System.out.println("Gender is :"+text.getText());
}

2 个答案:

答案 0 :(得分:0)

使用 containsAll 功能。和你的情况一样,你可以在字符串列表中获取Gender的文本,在另一个列表中获取Mstatus的文本,即

List<String> genderList = new ArrayList<String>();
for (WebElement G : Gender ) {
    genderList.add(G.getText());
}
List<String> mstatusList = new ArrayList<String>();
for (WebElement G : Mstatus) {
    mstatusList.add(G.getText());
}
System.out.println(mstatusList.containsAll(genderList));

containsAll 将检查提供的集合的所有元素。

答案 1 :(得分:0)

如果两个列表相同或不相同,它只是断言的另一种方式 根据 @Vivek ,获取文本列表,并说明检索文本后获得的列表是: genderList mstatusList 。< / p>

您也可以使用以下代码断言两个列表:

try{
    Assert.assertEquals(genderList, mstatusList);
    System.out.println("Equal lists");
}catch(Throwable e){
    System.err.println("Lists are not equal. "+e.getMessage());
}

注意:您需要使用 import junit.framework.Assert; 导入 Assert类(假设您正在使用junit框架) ,就是。)