Advanced locators - little prince

Post on 09-Jan-2017

266 views 1 download

Transcript of Advanced locators - little prince

Как находить ненаходимое:возможности CSS и Xpath

локаторов

Вадим Зубович

О себе

Вадим Зубович

Активист COMAQA

www.comaqa.by

Синтаксис CSS-селекторовdiv [name=‘login’][class=‘main’]>div[class=‘main’]>…

div div[class=‘main’] .main

div [id=‘focus’] div#focus

.big.content

CSS-селекторы, combining selectors

snake[type=‘boa_constrictor’]>elephant

CSS-селекторы, id

#little_prince[name=‘earth’]>

CSS-селекторы несколько нод

#little_prince,rose

CSS-селекторы несколько нод

[name=‘b612’]>#little_prince,[name=‘b612]>rose

CSS-селекторы несколько нод

[name=‘b612’]>#little_prince,rose[windscreen]

CSS-селекторы siblings

#little_prince+bird #little_prince~bird

CSS-селекторы pseudo-classes

bird:first-child

CSS-селекторы pseudo-classes

bird:last-child space>bird:last-child

CSS-селекторы pseudo-classes

space>bird:nth-child(2) space>bird:nth-last-child(4)

CSS-селекторы pseudo-classes

rose:only-of-type

CSS-селекторы pseudo-classes

table>bottle:not([position])

Синтаксис XPath-локаторовdiv [@name=‘login’][@class=‘main’] /div[@class=‘main’] //…//.

div [@name=‘login’ and @class=‘main’] /div[text()=‘main’] //…//.

div [@name=‘login’ and @class=‘main’] /preceding-sibling::div//…//.

Xpath-локаторы

//table/bottle[position!=‘standing’] //table/bottle[not(@position)]

Xpath-локаторы несколько нод

//*[@id=‘little_prince’]|rose

Xpath-локаторы Xslt-functions

//*[starts-with(@formula,‘a/2’)]//*[contains(@formula,‘2=b’)]//*[ends-with(@formula,‘b/4’)]

Xpath-локаторы Xslt-functions

//*[contains(text(),‘2=b’)]//*[starts-with(text(),‘a/2’)]//*[ends-with(text(),‘b/4’)]

Xpath-локаторы Axis

//ram/preceding-sibling::sheep

//ram/following-sibling::sheep

Xpath-локаторы Axis

//*[@id=‘little_prince’]/ancestor::stone//*[@id=‘little_prince’]/preceding::stone//*[@id=‘little_prince’]/parent::wall //*[@id=‘little_prince’]/..

Общие рекомендации

Используйте минимально возможное количество параметровИзбегайте сложной иерархииИзбегайте использования индексовИзбегайте поиска по тексту

Ищите уникальные атрибуты или их сочетанияВСЕГДА проверяйте свои локаторы в браузере

Спасибо за внимание

Вадим Зубовичwww.comaqa.by

Skype: dpi.zubovichhttps://github.com/Fulcrum81