Перейти к содержимому

Фотография

CSS vs XPath

CSS XPath

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 10

#1 Сергей

Сергей

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 245 сообщений
  • Город:Москва

Отправлено 27 марта 2015 - 13:44

Коллеги.

 

Чем отличается XPath от СSS?

 

На мой взгляд CSS более читабелен.

 

Что нашел:

 

Traversing the DOM in older browsers like Internet Explorer 8 does not work with CSS but is fine with XPath. And XPath can walk up the DOM (e.g. from child to parent), whereas CSS can only traverse down the DOM (e.g. from parent to child).

 

Приведите, пожалуйста, пример в доходчивой форме, как мне это поможет.

 

Пока я предпочитаю CSS, кто переубедит?

 

Спасибо.


  • 0

"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс


#2 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 27 марта 2015 - 13:57

а этого разве не достаточно ? по моему это большой + в пользу xpath, хождение от чайлда к паренту и далее от парента к другому чайлду , например.

Особенно если тебе нужно протестировать значения строки в таблице.


  • 0

#3 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 27 марта 2015 - 14:49

а этого разве не достаточно ? по моему это большой + в пользу xpath, хождение от чайлда к паренту и далее от парента к другому чайлду , например.

Особенно если тебе нужно протестировать значения строки в таблице.

Согласен, + в Xpath есть оси

Не помню, если в CSS contains, но что реально напрягало, что в CSS нет last(выбрать последний элемент или last()-1 - предпоследний), OR, count и т.п.


  • 0

#4 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 27 марта 2015 - 16:06

Согласен, что CSS более читабелен.

Особенно, когда элемент удобно идентифицировать по классу, а их в атрибуте несколько, весьма приятно написать tag.some-special-class вместо tag[contains(@class,'some-special-class')].

 

Однако, пару раз сталкивался, что при последовательном поиске элементов с разными типами селекторов (нашли один, внутри него - другой и т.п.) драйвер иногда начинает искать от корня при смене типа селектора, т.е. игнорирует контекст поиска.

Теперь больше не рискую и использую один тип селекторов. Ну, и выбор чаще делается в пользу XPATH из-за более богатого функционала.

 

Кстати, не знаю, было это или нет на форуме, но вот ссылка на шпаргалку по разным способам поиска:

https://www.simple-t...-rosetta-stone/


  • 0

#5 aksas

aksas

    Активный участник

  • Members
  • PipPip
  • 130 сообщений
  • Город:Харьков

Отправлено 27 марта 2015 - 16:15

+ css  быстрее http://stackoverflow...tteraccording-t

+ css лаконичнее

 


Не помню, если в CSS contains, но что реально напрягало, что в CSS нет last(выбрать последний элемент или last()-1 - предпоследний), OR, count и т.п.

 

 

CSS contains  - [attribute~=value]

last()-1            - :nth-last-child(-n+2) /* represents the two last rows of an HTML table */

OR                  - ,

 

но минусы есть

- нет возможности проверить текст в ноде

- нельзя обратиться к родительской ноде

 

Я стараюсь использовать css везде, где не нужно находить элемент по тексту внутри (а это как по мне всегда плохо) и если нужен сложный селектор с использованием родителя


  • 0

#6 aksas

aksas

    Активный участник

  • Members
  • PipPip
  • 130 сообщений
  • Город:Харьков

Отправлено 27 марта 2015 - 16:17


Однако, пару раз сталкивался, что при последовательном поиске элементов с разными типами селекторов (нашли один, внутри него - другой и т.п.) драйвер иногда начинает искать от корня при смене типа селектора, т.е. игнорирует контекст поиска.

 

тоже сталкивался в случае если сначала css а потом xpath. В таком случае мне помогло начинать xpath с "./"


  • 0

#7 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 28 марта 2015 - 17:34

Извечная тема. Переубеждать не буду, так как тоже предпочитаю CSS, но зачастую приходится комбинировать, особенно когда нужно искать по тексту в теге. Соглашусь с теми, кто считает что CSS более удобочитаем.


  • 0

#8 Сергей

Сергей

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 245 сообщений
  • Город:Москва

Отправлено 30 марта 2015 - 14:26

Всем спасибо. Вывод сделал следующий - буду продолжать использовать CSS в пользу более удобочитаемости, если не справится, то XPath. При парсинге резюме с работных сайтов пока CSS полностью справлялся. Вопрос возник, т.к. по моим личным наблюдениям сообщество Селениум предпочитает XPath. Опять же это мои личные наблюдения или просто по XPath задают больше вопросов.


  • 0

"Если ты хороший плотник и делаешь красивую тумбочку, ты не будешь прибивать сзади фанеру, даже несмотря на то, что задняя часть повернута к стене, и никто ее не видит. Ты будешь хорошо спать ночью, только если тебе удалось воплотить в своем произведении эстетическую красоту и качество." © Стив Джобс


#9 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 30 марта 2015 - 14:38

Вопросы по XPath задают начинающие, начинающие, XPath - сами знаете как получают, а дальше либо происходит осваивание css или не происходит )))


  • 0

#10 aksas

aksas

    Активный участник

  • Members
  • PipPip
  • 130 сообщений
  • Город:Харьков

Отправлено 30 марта 2015 - 14:39

по моим наблюдением многие даже не пытаются разобраться с css. С XPath разобрались, зачем еще напрягаться :)


  • 0

#11 valentin_al_sitnick

valentin_al_sitnick

    Новый участник

  • Members
  • Pip
  • 1 сообщений
  • ФИО:Ситник Валентин

Отправлено 02 апреля 2015 - 07:26

по моим наблюдением многие даже не пытаются разобраться с css. С XPath разобрались, зачем еще напрягаться :)

 

По моим наблюдениям :))))...
...многие любят, когда вебэлементы "помечены". Мы от своих требуем необходимые элементы помечать id-шниками - ИМХО читабильно, понятно, да и разрабы знают что за ними люди тестировать будут.


  • 0



Темы с аналогичным тегами CSS, XPath

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных