Post on 09-Jan-2017
Как находить ненаходимое:возможности CSS и Xpath
локаторов
Вадим Зубович
Синтаксис 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