Вы правы, предполагая, что поиск <span class="price-percent-reduction">
вернет несколько элементов. Похоже, вы пытаетесь найти конкретный продукт на странице, с процентным снижением цены. Поэтому вам нужно будет найти span
в контексте искомого продукта.
Вот расширенный XPath, который просматривает название продукта и получает процентную скидку на основе этого:
//ul[@id='homefeatured']//div[h5/a[@title='Printed Chiffon Dress']]/div/span[@class='price-percent-reduction']
Этот селектор возвращает 1 результат -20%
, который представляет собой процентную скидку на продукт Printed Chiffon Dress
.
Это может быть обобщено на:
//ul[@id='homefeatured']//div[h5/a[@title='product title here']]/div/span[@class='price-percent-reduction']
XPath можетразделить его следующим образом:
На веб-сайте есть два списка продуктов - «Популярные» и «Бестселлеры». В этих двух списках продуктов есть дубликаты продуктов - некоторые «Популярные» товары также входят в список бестселлеров. Чтобы получить отдельный элемент продукта, нам нужно указать список. В приведенном выше XPath указан список «Популярные», указанный в предложении //ul[@id='homefeatured']
. Обратите внимание, что это можно изменить на //ul[@id='blockbestsellers']
, чтобы выбрать из списка «Бестселлеры».
После выбора //ul[@id='homefeatured']
мы запрашиваем продукт в списке, используя атрибут title
, который появляетсявнутри пункта //div[h5/a[@title='product title here']]
. Этот запрос указывает наш путь для поиска содержащего элемента div
, который содержит заголовок product title here
.
Как только мы выберем продукт на основе его названия, мы можем запросить вплоть до снижения цены в процентах, /div/span[@class='price-percent-reduction']
часть предложения.
С помощью полученного XPath вы можете изменить product title here
на Printed Chiffon Dress
или заголовок любого другого проекта и получить значение% off (-5%), которое отображается подэтот продукт.
Стоит отметить - я использую вспомогательное расширение XPath для своего Google Chrome, так что я могу тестировать большинство XPath в режиме реального времени и писать сложные оценки, такие как путь, который я написал выше. Это механизм, который я использовал для проверки этого XPath по указанному вами URL веб-сайта.