В Tritium, чем отличаются селекторы CSS и XPath?

Каковы преимущества / недостатки двух разных селекторов?

Должен ли я использовать один над другим?

2 ответа

Решение

Я думаю, что это в первую очередь вопрос пользовательских предпочтений.

Выбрать первого ребенка из всех <p> элементы, вы бы сделали:

  • $("//p/*[1]") в Xpath
  • $$("p > *:first-child") в CSS

Я предпочитаю использовать Xpath, но YMMV.

Обратите внимание, что внутри все селекторы CSS преобразуются в Xpath. Например, селектор $$("#one") будет преобразован в $(".//*[id='one']"),

Всего несколько заметок:

  • индексирование начинается с 1 в XPath, поэтому //p/*[1]
  • Селекторы CSS в Tritium позволяют использовать префикс селектора с >, как в $$("> p > :first-child"); это будет преобразовано в поиск по области (т. е. ./p/*[1])
  • Поскольку селекторы CSS (в настоящее время) динамически преобразуются в XPath, это незначительное снижение производительности по сравнению с использованием простого XPath.
Другие вопросы по тегам