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

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

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

  • xpath
  • css

0 участников

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

1 лайк

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

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

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

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

6 лайков

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

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

8 лайков

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

3 лайка

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

6 лайков

@Maxim1 а приходилось использовать CSSSelector ’ closest ’ method ?
Element: closest() method - Web APIs | MDN ? он вроде может помочь builing relative path ?

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

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

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

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

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

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

2 лайка

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

2 лайка

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

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