xpath в selenium - выбрать элемент по порядковому номеру из всех найденных на странице


(Сергей Охотник) #1

Всем привет. Есть вот такая верстка:

<div>
    <span>...</span>
    <div>
        <span>...</span>
    </div>
</div>

стоит задача обратиться к первому либо ко второму элементу <span>.
т.к вложенность разная //span[1] выдает оба элемента, //span[2] не выдает ничего

селекторы (//span)[1] и (//span)[2] выполняют задачу, но их не понимают Selenium RC и IDE (выдает "элемент не найден")

то же самое с
/descendant-or-self::span[1] и /descendant-or-self::span[2] - если поставить 2 слеша в начале то селениум начинает понимать, но выражение уже ищет не то что нам надо

/descendant::span[1] и /descendant::span[2] - то же самое что с descendant-or-self

возможно кто-то знает как написать селектор который будет понятен для селениума?


(Антон) #2

Очень странно что тебе нужно и в RC и в IDE проверять что-то...ну да ладно.
Кажется единственное что может быть это что ты ищешь этот span в другом веб элементе и забыл поставить вначале xpath точку...в итоге должно бы быть что-то вроде:

containerWebElement.findElement(By.xpath("(.//span)[1]"));

Если нет то действительно что-то уж очень странное


(Сергей Охотник) #3

с точкой тоже не работает. IDE мне в принципе не нужен, нужен RC и он такие локаторы не понимает тоже.


(Сергей Охотник) #4

подниму тему. мы пока пробуем пойти другим путем - переверстать страницы, но всеже вопрос актуален