Как пропустить первый элемент с таким же именем класса, который также имеет условие "Больше, чем"

Я хочу выбрать кнопку, которая содержит число больше 1, поэтому я написал следующее:

//*mobile-list-outcome[1]/div/div[2][number(.) > 1]

Моя проблема в том, что я хочу избежать первого элемента, потому что он не имеет значения, мое решение заключалось в том, что я попытался поставить index [1] в конце:

//*mobile-list-outcome[1]/div/div[2][number(.) > 1][1]

но все, что он сделал, это уменьшил найденные элементы до 0, есть идеи?

ПК: Я также пробовал поставить и между двумя условиями, и ничего не получилось.

1 ответ

Чтобы пропустить первый элемент, вы можете использовать position()индекс. В твоем случае:

//*/sb-mobile-odds/div//sb-mobile-list-outcome[1]/div/div[2]/text()[number(.)>1][position()>1]

или

//*/sb-mobile-odds/div//sb-mobile-list-outcome[1]/div/div[2]/text()[number(.)>1][not(position()=1)]

Обратите внимание, что следующее выражение должно работать без number() функция:

//*/sb-mobile-odds/div//sb-mobile-list-outcome[1]/div/div[2]/text()[.>1][position()>1]

Боковое примечание: вы можете использовать () чтобы выбрать первый элемент страницы, отвечающий вашим условиям:

 (//*/sb-mobile-odds/div//sb-mobile-list-outcome[1]/div/div[2]/text()[.>1])[1]

РЕДАКТИРОВАТЬ: 3 варианта тестирования:

//*/sb-mobile-odds/div//sb-mobile-list-outcome[1]/div[position()>1]/div[2]/text()[.>1]
(//*/sb-mobile-odds/div//sb-mobile-list-outcome[1]/div/div[2]/text()[.>1])[position()>1]
//div[@class="sb-event-list__selection sb-event-list__selection--european"][position()>1]/div[contains(@class,"sb-event-list__selection__outcome-value")][.>1]
Другие вопросы по тегам