Недостатки и преимущества xpath. Недостатки и преимущества css.
в интернетах достойного объяснения так и не удалось найти, кто-то сравнивает красоту кода, кто-то в миллисекундах подсчитывает скорость поиска в разных браузерах.
Для меня единственная разница в использованиях так это что с css удобно работать с группами элементов таких как дочерних/родственные.
Ну и есть возможность удобно работать с псевдоклассами и псевдоэлементами.
У кого какие мысли на этот счет?
В моём случае всё зависит от приложения.
Для одного было удобнее использовать CSS. Для другого сейчас использую XPATH.
И в том и в другом есть свои преимущества и недостатки. Но тут каждый решает для себя, что удобнее или красивее или больше подходит для приложения/проекта/продукта в данный момент.
У меня в одном проекте могут встречаться оба. Даже при описании одной страницы. И ничего страшного, я в этом не вижу. Думаю это не стоит того, чтобы заострять на этом особое внимание.
В XPATH для меня главным преимуществом является возможность поиска по осям вверх. Т.е. искать родительский элемент отталкиваясь от его потомка. + возможность использования встроенных функций (contains(), starts-with(), string-length(), not(), normalize-space() и т.д.)
Когда-то читал, что скорость поиска по XPATH и CSS не имеет принципиальной разницы и на самом деле всё упирается во время выполнения http запроса к драйверу.
Я бы сформировал тезис так:
Хпас нужен - если есть говноверстка, нет айдишниколв, зацепиться на элементы можно только через сиблингов, есть списки и таблицы итд
Бывали случаи когда мне надо было зацепиться за уровень ниже, потом подняться к родителю, и взять элемент который был как-то связан с родителем. Для таких кривых путей у меня CSS не придумывался, а XPath пожалуйста.
У xpath плюсы в том что можно делать вертикальную навигацию по DOM. Плюс очень выручает поиск по тексту.
У css огромный плюс - возможность использовать регулярные выражения (мне это очень помогает на моём текущем ангулярном проекте где даже id-шники динамические).
В остальном эти технологии не отличаються.
Проголосовал за XPATH. Если не бояться использовать его встроенные функции, то это намного более мощный инструмент чем CSS. Для всего остального есть data-attributes