CSS эквивалент XPath, группировка и индексация в скобках? - PullRequest
1 голос
/ 25 февраля 2012

Этот вопрос направлен на тестирование с помощью Selenium / Web Driver, хотя и относится к обычным веб-приложениям / разработкам.

В XPath есть очень хорошая возможность группировать данный XPath и комбинировать его с индексированием, чтобы сказать:элемент N для всех / нескольких элементов, возвращаемых из данного XPath, указанный как "(// someXpath) [n]" без кавычек.

Мне было интересно, существует ли переводимый эквивалент в CSS. Если нетс помощью стандартного CSS, тогда как насчет Sizzle / jQuery? Если бы его не было, было бы неплохо, если бы в будущем этот стандарт был добавлен как стандарт CSS.

Кроме этого, альтернатива для XPath и CSS должна быть более конкретной в описании дерева DOM, поднимаясь по дереву, чтобы получить уникальность в идентификации элементов (в отличие от (someShorterSimplerXpath) [n]).

1 Ответ

1 голос
/ 25 февраля 2012

Вы можете получить доступ к наборам jquery, таким как массивы: $('selector')[n]

Для относительного / xpath вы можете использовать children(), поэтому для xpath типа //selector/foo вы бы сделали $('selector').children('foo'). Для относительного // xpath вы можете использовать find(): для //selector//foo используйте $('selector').find('foo'). Для .. вы можете использовать parent(): для //selector/.. использовать $('selector').parent()

В CSS, хотя родительских селекторов нет, существует псевдокласс nth-of-type (спецификация здесь ). Так что вы можете сделать selector:nth-of-type(n).

...