Не хочется переписывать всю строку, которую выдает firepath
Кто может предложить какие варианты???
Всякие такие:
//app-project-plan-part/div/div… и тд до элемета
так же не нравятся почему-то((
Вот меня всегда поражали такие задания по скрину) Вам никто не даст нормальный ответ. Нужен полный код.
С чего начинается написание гибкого xpath пути? Правильно - с определения и разделения сущностей на классы эквивалентности. Затем мы выделяем нужную нам сущность, цепляемся за нее первым xpath компонентом, а потом продолжаем написание xpath пути вплоть до элемента.
Иначе, если вы будете цеплятся только за отдельные элементы - будете находить по одному xpath пути по 10 элементов когда вам нужен один
Ну раз скрины с кусками кидает, то можно еще посоветовать цепляться всегда к тексту)) Можете создать себе вот такой локатор //*[.=‘Text’] и не будете горя знать))
Тем что элементов на странице с именно таким текстом может быть вагон. Ну и поиск такого элемента занимает больше времени по сравнению с нормальными локаторами.
а какой нормальный локатор???Тут везде одни и те же классы, к названию класса прицепиться я не смог. Что надо цепляться к app-project-plan-part??? как я понимаю он как то еще уникален и идти ниже?
Который единообразно представляет элемент на странице. Вам надо уцепиться за сущность, в которой искомый элемент определяется однозначно и составить так: //локатор_сущности//локатор_элемента
Вот целый код станицы… как бы вы написали локатор который находит нужный элемент???Подскажите пожалуйста. С текстом я понял получиться потому, как не странно он тут один))
Найти текст и подняться вверх на 1 и нажать на него я тоже смогу… Просто интересно как бы кто то еще написал
Теска, pytractor не поможет составлять грамотно локаторы(
Локатор должен отражать сущность, разработчики ‘тоже люди’ они обращаются к элементу из кода поэтому где то рядом должно быть что то осмысленное, отражающее функционал, за него и цепляемся. В идеале посмотрев на локатор можно понять что это за элемент.
В вашем случае как я понял это какая то персона в списке и у него какой то функциональный элемент
вот на него css li[person-item] i таких элементов 5 на странице, берите их как List это в будущем позволит выбирать любую персону как person.get(0), из списка или например рандомно в автотесте выбирать постоянно разную строку. Если очень хочется то li[person-item] i:nth-child(1) вот так можно первый достать.
Не брезгуйте css, xpath,- это оружие которое нужно в гораздо более тяжелых случаях.