Невозможно передать локатор «By» для объекта List.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Невозможно передать локатор «By» для объекта List.

Сообщение Anonymous »

У меня есть список веб-элементов, в которых хранятся веб-элементы «ценовые предложения» и «диапазон цен». Я сохраняю их в локаторах списка @FindBy.
Проблема возникает, когда я хочу их использовать — у меня есть метод, который проверяет тип цены продукта на странице — если это диапазон («...» $9,00 - $15,00"...") возвращает PriceRange, но если это предложения ("...2 предложения от...") возвращает PriceOffers. Для этого метода требуется локатор «По», он не принимает список. Если я изменю его со List на By, значение локаторов станет нулевым (найдено в отладке), и если я попытаюсь привести его в метод проверки типа цены, выполнение завершится неудачей и поток остановится.
Мне нужно просмотреть каждый продукт, его цену, отзывы, название, звезды и рейтинг. Конечная цель — сохранить информацию на листе Excel.
У меня есть один рабочий метод, в котором он сохраняет все (код сохраняет все эти элементы в List, а затем перебирает каждый элемент, чтобы записать его на лист Excel). ), но таким образом каждый элемент не связан со своим основным продуктом - если, например, у одного продукта нет отзывов, на листе Excel этот продукт может получить номер обзора предыдущего (или следующего) продукта, потому что код не имеет t хранить информацию не для каждого отдельного продукта, а для каждого списка элементов продукта.
Веб-страница называется «Amazon Movers & Shakers», метод и локаторы следующие:
@FindBy(xpath = "//span[contains(text(), 'offer from') or contains(text(), 'offers from')]")
List priceOffers;
@FindBy(xpath = "//span[contains(@class, 'a-size-base a-color-price')]")
List priceRange;

public boolean priceType(WebElement product) {
try {
WebElement offersElement = product.findElement(priceOffers);
return offersElement.isDisplayed();
} catch (NoSuchElementException e) {
try {
WebElement rangeElement = product.findElement(priceRange);
return rangeElement.isDisplayed();
} catch (NoSuchElementException e1) {
return false;
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... ent-object
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»