t.me/atinfo_chat Telegram группа по автоматизации тестирования

Задачка по CSS локаторам


(d3unka) #1

Как в CSS представить Xpath локатор //ul[@id='phone_list']/li[descendant::*/span/text()="Text"] ?


(Mykhailo Poliarush) #2

нет так не получиться, потому что CSS не умеет работать с текстовыми нодами, а точнее работает только с элементами.

потому все что можно получить это 

{syntaxhighlighter brush: css;fontsize: 100; first-line: 1; }ul[id="phone_list"]>li * span{/syntaxhighlighter}

это будет соответствовать 

{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }//ul[@id='phone_list']/li[descendant::*/span]{/syntaxhighlighter}

Правда в CSS2 была такая функция :contains(), которую можно было бы использовать, она именно смотрим в текстовые ноды, но в CSS3 ее не стало :(

З.Ы. линкм по CSS http://css.maxdesign.com.au/selectutorial/index.htmhttp://www.w3.org/TR/css3-selectors/http://api.jquery.com/contains-selector/


(d3unka) #3

Вот и я так голову поломал, и получилось аналогичное. Все таки CSS не везде заменяет xpath.

По поводу contains(), эта функция работает, но она берет наличие текста в теге, как это может помочь?


(Mykhailo Poliarush) #4

ну если contains() работает, то выражение должно выглядеть как

{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }ul[id="phone_list"]>li * span:contains('Text') {/syntaxhighlighter}


(Mykhailo Poliarush) #5

http://net.tutsplus.com/tutorials/html-css-techniques/the-30-css-selectors-you-must-memorize/

http://tools.css3.info/selectors-test/test.html


(daddy) #6

ul#phone_list>li * span:contains('Text')

так мне кажется будет красивее

но это все равно не правильно, ибо икспаз в прbмере селектит  элемент li а не span

Автор, а можно кусок html для примера?