xpath и css локаторы





Про xpath- и css-локаторы можно почитать на страничке :

http://seleniumhq.org/docs/appendix_locating_techniques.html#starting-to-use-css-instead-of-xpath

Коротко говоря xpath- и css-локаторы — это два различных типов локаторов для идентификации объектов на веб-странице.

css-локаторы идентифицируют элементы быстрее, но xpath-локаторы надежнее, поэтому во всех автотестах было решено использовать xpath-локаторы.

Для правильного определения и написания xpath локаторов нам поможет firebug (http://firebug.ru/) и плагин для него FireFinder (https://addons.mozilla.org/en-US/firefox/addon/firefinder-for-firebug/)

Устанавливаем firebug и FireFinder.

Заходим на страницу mamba.ru Нажимаем правой кнопкой мыши по ссылке «Вход» — «Аанализировать элемент» Копируем ссылку и получаем следующее:

Вход

В Xpath это будет выглядеть так //a[contains(@class, ‘o-auth’)] ( тег, класс и название класса). (Примечание: можно использовать class, а любой параметр для тега. Например, //a[contains(@href, ‘/?tip=Login’) — нахождение ссылки по уникальному содержимому в ней)

Для CCS-локатора это будет выглядеть как «a.o-auth». Использовать следует следующим образом driver.findElement(By.cssSelector(«a.o-auth»);

Далее в firebug заходим на вкладку Firefinder в поле вставляем наш xpath: //a[contains(@class, ‘o-auth’)] нажимаем «Filter» и получаем следующую ссылку:

Отсюда вывод, что наш xpath верен.

В заключении надо сказать о частных локаторах: id и name. Они являются уникальными для элемента, поэтому поиск по ним происходит значительно быстрее. К сожалению, они есть далеко не всегда.

Формат команды driver.findElement(By.id(«id»)); и driver.findElement (By.name(«name»));

Например, driver.findElement(By.name(«submit_login»)); для кнопки «Войти» на лаере авторизации.
driver.findElement(By.id(«auth:email»)); для поля ввода e-mail на лаере авторизации.
В дальнейшем я еще буду писать подробные статьи о работе с xpath и css



Поделиться в соц. сетях

Опубликовать в Одноклассники
Опубликовать в Google Plus
Опубликовать в Мой Мир
Опубликовать в Google Buzz
Опубликовать в LiveJournal
Опубликовать в Яндекс

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *