t.me/atinfo_chat Telegram группа по автоматизации тестирования

Недостатки и преимущества xpath. и почему

xpath
locators
webdriver
Теги: #<Tag:0x00007f9c49164fd0> #<Tag:0x00007f9c49164c88> #<Tag:0x00007f9c49164aa8>

(Яна Телегина) #1

Недостатки и преимущества xpath. Недостатки и преимущества css.
в интернетах достойного объяснения так и не удалось найти, кто-то сравнивает красоту кода, кто-то в миллисекундах подсчитывает скорость поиска в разных браузерах.
Для меня единственная разница в использованиях так это что с css удобно работать с группами элементов таких как дочерних/родственные.
Ну и есть возможность удобно работать с псевдоклассами и псевдоэлементами.
У кого какие мысли на этот счет?

Какие локаторы (xpath или css) вы используете на проекте?

  • xpath
  • css

0 участников


(Vladislav Abramov) #2

чем получается, тем и пользуйся


(Nik Sidorenko) #3

В моём случае всё зависит от приложения.
Для одного было удобнее использовать CSS. Для другого сейчас использую XPATH.
И в том и в другом есть свои преимущества и недостатки. Но тут каждый решает для себя, что удобнее или красивее или больше подходит для приложения/проекта/продукта в данный момент.

У меня в одном проекте могут встречаться оба. Даже при описании одной страницы. И ничего страшного, я в этом не вижу. Думаю это не стоит того, чтобы заострять на этом особое внимание.

В XPATH для меня главным преимуществом является возможность поиска по осям вверх. Т.е. искать родительский элемент отталкиваясь от его потомка. + возможность использования встроенных функций (contains(), starts-with(), string-length(), not(), normalize-space() и т.д.)

Когда-то читал, что скорость поиска по XPATH и CSS не имеет принципиальной разницы и на самом деле всё упирается во время выполнения http запроса к драйверу.


(Vatslau) #4

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

В остальных случаях пойдет CSS


(rpwheeler) #5

Бывали случаи когда мне надо было зацепиться за уровень ниже, потом подняться к родителю, и взять элемент который был как-то связан с родителем. Для таких кривых путей у меня CSS не придумывался, а XPath пожалуйста.


(Maxim Andryushchenkov) #6

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


(Сергей Кузьмин) #7

@Maxim1 а приходилось использовать CSSSelector ’ closest ’ method ?
https://developer.mozilla.org/en-US/docs/Web/API/Element/closest ? он вроде может помочь builing relative path ?


(Maxim Andryushchenkov) #8

Нет, говорю же, CSS для меня не особо важен, особенно после того как научился делать гибкие XPATH локаторы. Просто потребности такой нет


(Александр Гречко) #9

У xpath плюсы в том что можно делать вертикальную навигацию по DOM. Плюс очень выручает поиск по тексту.
У css огромный плюс - возможность использовать регулярные выражения (мне это очень помогает на моём текущем ангулярном проекте где даже id-шники динамические).
В остальном эти технологии не отличаються.


(Violant) #10

Столкнулись с тем, что с xpath нельзя привязаться к кастомным тегам явно, только через *. Пришлось перепрыгнуть на css в этих локаторах.


(John Johny) #11

Всем привет , посоветуйте пожалуйста хорошую литературу по xpath и css чтобы подтянуть скиллы для автоматизаций.
Спс


(Михаил Братухин) #12

По xpath отличный мануал есть, тут уже выкладывали на форуме ссылку на него: Дайджест полезных ссылок для автоматизаторов
По css не выкладывали вроде тут ничего, но он легко гуглится. Например, вот тут :point_right: https://developer.mozilla.org/ru/docs/Web/CSS/Reference


(Maxim Andryushchenkov) #13

Мне лично нравится как вот здесь описана работа
Не так страшен XPATH как его незнание — testers little helper


(Julian Kolodzey) #14

Проголосовал за XPATH. Если не бояться использовать его встроенные функции, то это намного более мощный инструмент чем CSS. Для всего остального есть data-attributes :slight_smile:


(Яна Телегина) #15

О каких, встроенных функциях говорите =)


(Julian Kolodzey) #16

О стринговых, в основном