Использование локаторов (locators) в Selenium. Часть 1
Опубликовано polusok в 20.08.2009
Что такое локаторы элементов и для чего они нужны?
Локатор элемента - это механизм определения местонахождения элемента относительно HTML документа, над которым необходимо выполнять какие-то действия. В Selenium основной еденицей является шаг, в котором нужно указать:
- Команда (Command)
- Цель (Target)
- Значение (Value)
Например, открытие сайта http://google.com.ua.
<tr> <td>open</td> <td>http://google.com.ua/</td> <td></td> </tr>
Для большинства команд требуется наличие локатора элемента, который указывается в target.
Какие локаторы используются в Selenium?
- identifier
- id
- name, и уточняющие фильтры
- link
- dom
- xpath
- link
- css
- ui
В данной статье будут описанны: identifier, id, name, link, фильтры. Остальные локаторы будут описаны во второй части.
Общая форма локатора
locatorType=argument, где locatorType – это тип локатора, argument – это выражение
Как использовать локаторы?
Заметка: Все примеры будут проиллюстрированны на странице http://google.com.ua с использованием Selenium Core. Если вы не знакомы с Selenium Core, то вам будет полезно узнать, как писать простые тесты с нуля. Что нам нужно, это HTML страницы, которая будет тестироваться настроенный инструментарий с которым уже можно попрактиковаться.
Теперь в кратце пройдемся по всем выше указанным типам локаторов. Во всех примерах будет использоваться следующий пример, к которому будут, добавляется нужные шаги:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Empty Test</title> </head> <body> <table cellpadding="1" cellspacing="1" border="1"> <tr> <td>open</td> <td>http://google.com.ua/</td> <td></td> </tr> </table> </body> </html>
identifier
Выбирает элемент, атрибут @id которого соответствует, какому-то идентификатору. Если элемента с таким атрибутом нет, то будет выбран первый элемент, у которого значение атрибута @name будет соответствовать искомому. Думаю, тут все просто. Алгоритм таков, ищем нужный элемент и смотрим, что бы у него был атрибут @id. Например, что ищем:
<div id="gbar">
Код для тестирования:
<tr> <td>highlight</td> <td>identifier=gbar</td> <td></td> </tr>
id
Все тоже самое, что и для локатора identifier, только в данном случае выбирается строго по атрибуту @id без всяких условий. Например, что ищем:
<div id="guser" width="100%">
Код для тестирования:
<tr> <td>highlight</td> <td>id=guser</td> <td></td> </tr>
name
Выбирает элемент, атрибут @name которого соответствует, какому-то значению. Например, что ищем:
<form name="f" action="/search">
Выбирает элемент, название ссылки, которой соответствуюет искомому тексту. Например, что ищем:
<a href="/url?sa=p&pref=ig&pval=3&q=http://www.google.com.ua/ig%3Fhl%3Duk%26source%3Diglk&usg=AFQjCNFP4lumd9xRSofuiLLkCCiUnMXZ2g">iGoogle</a>
Код для тестирования:
<tr> <td>highlight</td> <td>link=iGoogle</td> <td></td> </tr>
»
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии







