我已经将产品添加到购物篮中并在List中列出了它们的URL,并想要根据给定的String[]产品验证这些产品。
这些商品以相反的顺序存储在z String[]中,因此这里的最后一项是List中的第一项。项目数量为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");
}
list.contains()
方法。第三,如果你只想知道是否正确,可以将数组转换为列表,然后对两者进行排序,并使用equals()
方法。 - JaiList actualItems = listItems.stream()
.map(listItem -> listItem.getAttribute("href"))
.collect(Collectors.toList());
IntStream.range(0, goods.length).forEach(i -> assertEquals(goods[goods.length - i - 1], actualItems.get(i)));
assertEquals(listItems.size(), goods.length, "Assert Number of Items in the Bag");
- Naman