Я определил функцию LocatorBuilder и вставил ее в качестве первого элемента массива LocatorBuilders. Он работает красиво. Однако, когда я добавляю alert() в верхней части моей функции, я вижу, что моя функция вызывается дважды для каждого щелчка пользователя, который записан. В частности, когда я включаю запись и нажимаю кнопку на странице, последовательность событий: 1) моя функция вызывается, 2) клик записывается с использованием выражения локатора, которое я создал, 3) браузер обрабатывает клик , 4) моя функция снова вызвана.Почему рекордер Selenium IDE вызывает функцию LocatorBuilder несколько раз за клик пользователя?
Примечание. Я не могу найти этот документ в любом месте, но я предполагаю, что в принципе рекордер вызывает каждую функцию в списке LocatorBuilders, каждый из которых возвращает выражение локатора-кандидата, пока не получит ненулевое выражение, которое соответствует точно одному элемент на странице.
Таким образом, моя функция работает по желанию, но дополнительный вызов функции кажется избыточным. Есть ли веская причина, что моя функция построения выражений должна вызываться более одного раза? Например, возможно ли изменение HTML-элемента объекта между вызовами? Что делает рекордер между последовательными вызовами моей функции?
EDIT: DOH! Я обнаружил, что дважды добавлял свою функцию в список LocatorBuilders.order. Итак, теперь моя функция вызывается только дважды. Тем не менее, почему несколько вызовов?