Как выбрать случайный елемент из тех что нашел через xpath


(Alex Vasilkovskiy) #1

Здравствуйте.
Пытаюсь автоматизировать покупку билетов на сайте.
Столкнулся с такой проблемой: в firepath по xpath проложил дорогу к свободным местам в поезде. Как сделать что б webdriver выбирал любое свободное место?


(rmerkushin) #2

Как говорится, экстрасенсы нынче в отпуске. Вы бы хоть html код страницы выложили и пример вашего xpath'а :smile: Или чем обычный random не подошел? если интересует конкретное место то: [] — дополнительные условия выборки или, что то же самое, предикат шага адресации. Но опять же нужно видеть код html страницы.


(Nick) #3

Получить массив с вебелементов со свободными местами.
Взять случайное число меньше длины массива.
Найти элемент с полученным индексом


(Evgenij.Malikov) #4

С потолка можно сделать так.
1) считаешь кол-во элементов (к примеру получишь переменную а = 7)
2) далее локатор: (xpath)[random(a)]


(Stan) #5

В самом xpath нет рандома, поэтому либо прийдется подставлять из вашего ЯП что-то, либо придумывать псевдо-рандом, основанный на каком-либо значении с страницы, например для этой страницы что-то типа

(//a[@data-auto-route])[count(//a[contains(@class,'posts-map')]) mod (//div/span/h4) + 5]

картинка велосипеда