driver.findElements(By.xpath("//input[contains(@id,‘ПН’)][last()]"))
result size=2
driver.findElements(By.xpath("//input[contains(@id,‘ПН’)][last()]"))
result size=2
Если в FirePath посмотреть? Сколько элементов выделит?
два
li:first-child [id^=‘ПН_’] в firePath этот запрос показывает первый Элемент
в селениуме не находит ничего
li:last-child [id^=‘ПН_’] и там и там не находит
Тогда по старинке)) считаем элементы и берем по индексу)
это да просто думал сократить код написав селектор универсальный.
просто странно что он выбирает первый отдельно а последний отдельно нет ну если селектор css писать
У меня (или верстка у нас правильная) - последний элемент нормально выделяется.
Может код хтмл дашь?
под цифрой один схлопнутый li
под цифрой два развернутый li и собственно тот элемент который я ищу,
[id^=‘ПН_’] такой поиск находит оба элемента,
li:first-child [id^=‘ПН_’] такой находит как раз первый который схлопнут
li:last-child [id^=‘ПН_’] вот этот должен находить элемент под цифрой два но он не находит ничего
driver.findElements(By.xpath("//input[contains(@id,‘ПН’)][last()]")) такой вариант находит оба элемента
Ошибся, с contains такая фишка не пройдет )))
Сейчас решим.
Если у тебя в “li” только один input c типом “radio”, тогда ищи по xpath путь до этого инпута с этим типом и тогда будет работать и last() и [x].
Что-то типа:
.//*[@id='profselection']/ul/li/input[@type='radio'][1]
.//*[@id='profselection']/ul/li/input[@type='radio'][last()]
А если нет?
driver.findElement(By.xpath(".//*[@id=‘profselection’]/ul/li/input[@type=‘radio’][last()]")).click();
в этом варианте кликает по первому
(.//*[@id=‘profselection’]/ul/li/input[@type=‘radio’][last()])
в firebage выбирает оба
.//*[@id='profselection']/ul/li[last()]/input[contains(@id,'ПН')]
Суть - из всех li, входящих в ul, ищем последний, а потом внутри - нужный инпут ))).
Такую задачу не решал, самому интересно.
я так пробовал не получилось
На работе пробую.
Конструкция вида:
.//*[@id='container']/div[last()]/div[contains(@id, "content")]
Дает мне нужный результат
Извините, что вмешиваюсь в ваш чат, но вам осталось лишь правильно расставить скобки в:
) почему наш то), он общий, сейчас буду пробовать
)))
неплохой чат вышел.
Надо оживить форум.
что то я не могу найти какие, подскажите