Итак, я пытаюсь добавить 2 объекта Item в список, просматривая его, но каким-то образом 2-й элемент переопределяет первый. Извините, что прошло много времени с тех пор, как я написал код, поэтому мне сложно понять, что я сделал неправильно, так как я ожидаю, что названия для этих предметов разные. : D
public static List<Item> buyList = new ArrayList<Item>();
int qty=2;
public static void buyItems(int qty)
{
for(int i=1; i<=qty; i++)
{
Item thisItem = new Item();
thisItem.setName(driver.findElement("//xpathOfName["+i+"]").getText()));
thisItem.setPrice(driver.findElement("//xpathOfPrice["+i+"]").getText()));
// System.out.println("this item is >>>>>>>>" +thisItem.getName());
buyList.add(thisItem);
// System.out.println("item at 0 is >>>>>>>>" +buyList.get(0).getName());
}
}
Перед добавлением «thisItem» в список buyList печатается правильное имя. Но в тот момент, когда я печатаю его вне цикла, он печатает второй элемент дважды (те, что я закомментировал). Я также попытался напрямую добавить новый элемент с именем и ценой в качестве параметров, но он все равно перезаписывает ранее добавленный элемент в список.
Я попытался упростить HTML-код ниже:
<ul>
<li id="item-1">
<div>
<h4>First Item</h4>
</div>
</li>
<li id="item-2">
<div>
<h4>Second Item</h4>
</div>
</li>
</ul>