Selenium rc предоставляет большой набор методов, для работы с элементами web-страниц. Во многих ...
Selenium rc предоставляет большой набор методов, для работы с элементами web-страниц. Во многих методах selenium rc, для определения элемента, с которым будем работать, используются локаторы. Один из способов задания локатора в selenium rc - это использование xpath. Подробно об xpath можно узнать на сайте
w3c. Сейчас мы рассмотрим примеры использования осей xpath в selenium rc. Все примеры можно проверить на странице
открыток яндекса.
Ось descendant:: - Возвращает полное множество потомков.
sel.isElementPresent("xpath=//td[@class='l-index-right']/div[@class='b-links']/div[@class='b-links-next']") - xpath, позволяющий обратиться к блоку "Что дальше?". Можно упростить этот xpath используя ось descendant:
sel.isElementPresent("xpath=//td[@class='l-index-right']/descendant::div[@class='b-links-next']")
Ось descendant-or-self:: - отличается от оси descendant тем, что вместе с множеством предков возвращает и текущий элемент. В сокращенном варианте ось descendant-or-self:: - можно заменить на «//»
Ось ancestor:: - Возвращает множество предков.
sel.getAttribute("xpath=//a[.='Букеты']/ancestor::td/@class") - xpath, по которому можно получить class первого td-предка тэга "Букеты"
Ось ancestor-or-self:: - отличается от оси ancestor тем, что вместе с множеством предков возвращает и текущий элемент.
Ось following:: - Возвращает необработанное множество, ниже текущего элемента.
sel.getAttribute("xpath=//div[@class='b-banner']/following::div/@class") - xpath, выбирающий class первого попавшегося div из элементов ниже div[@class='b-banner']. В результате получим "b-sidebar".
Ось following-sibling:: - Возвращает множество элементов на том же уровне, следующих за текущим.
sel.getAttribute("xpath=//div[@class='b-banner']/following-sibling::div/@class") - xpath, выбирающий class первого попавшегося div из элементов одного уровня с div[@class='b-banner'], находящихся ниже него. В результате получим "b-sent".
Ось preceding:: - Возвращает множество обработанных элементов исключая множество предков.
sel.getAttribute("xpath=//div[@class='b-foot']/preceding::table/@class") - xpath, выбирающий class первого попавшегося table из элементов выше div[@class='b-foot']. В результате получим "l-index".
Ось preceding-sibling:: - Возвращает множество элементов на том же уровне, предшествующих текущему.
sel.getAttribute("xpath=//div[@class='b-foot']/preceding-sibling::table/@class") - xpath, выбирающий class первого попавшегося table из элементов одного уровня с div[@class='b-foot'], находящихся выше него. В результате получим "b-head".