У меня была такая же проблема. Я думаю, что это происходит потому, что каждый раз, когда вы нажимаете на фотографию, DOM меняется. Поэтому, когда вы пытаетесь щелкнуть по второй фотографии, кэшированные элементы больше не находятся в DOM.
Попробуйте поместить фотографии в цикл for, например:
public GalleryPage choosePhotosFromAlbum(int count) {
for (int i = 0; i < count; i++) {
List<MobileElement> photos = driver.findElementsById(elements.get("photo from gallery album selector"));
photos.get(i).click();
}
return new GalleryPage(device);
}
Это способ получения списка фотографий из обновленного DOM в каждом цикле.
И, между прочим, вы не проверяете, больше ли число, чем размер списка фотографий, что может привести к исключению OutOfBounds или похоже.