
A1QA - Лекция - Локаторы.pptx
- Количество слайдов: 41
Локаторы
План лекции § Понятие локатора элемента § Механизм передачи локатора § Механизм поиска элемента в Selenium Web Driver § Виды локаторов § Простые локаторы § Xpath локаторы § CSS локаторы § Инструментарий § Советы по построению локаторов www. a 1 qa. ru
Определение локатора элемента Локатор – это строка, уникально идентифицирующая элемент html-страницы. Локаторы используются в Selenium для поиска элементов. www. a 1 qa. ru
Механизм передачи локатора § В Selenium Web. Driver локаторы реализованы с помощью класса By (org. openqa. selenium. By) § Передача локатора в Web. Driver API осуществляется по средством вложенных классов: ü By. Id (java. lang. String id) ü By. Class. Name (java. lang. String class. Name) ü By. Css. Selector (java. lang. String css. Selector) ü By. Link. Text (java. lang. String link. Text) ü By. Name (java. lang. String name) ü By. Partial. Link. Text (java. lang. String partial. Linktext) ü By. Tag. Name (java. lang. String tag. Name) ü By. Xpath (java. lang. String xpath) www. a 1 qa. ru
Механизм поиска элемента § Web. Driver обладает объектно-ориентированным API, все типы элементов страницы представлены единым интерфейсом Web. Element § Существует 2 метода поиска элементов на странице: ü find. Element(By by) ü find. Elements(By by) § Методы поиска учитывают параметры заданных неявных ожиданий (Implicit Wait) во время выполнения www. a 1 qa. ru
Механизм поиска элемента Web. Element find. Element(By by) § Передаваемый параметр: by – механизм определения элемента § Возращает: Первый найденный элемент на текущей странице § Бросает ошибку: No. Such. Element. Exception - если не найдено подходящих элементов ü Нельзя использовать для проверки наличия элемента на странице www. a 1 qa. ru
Механизм поиска элемента java. util. List
Виды локаторов § Простые § Сложные ü Id ü Xpath ü Name ü CSS ü Class Name ü Tag Name ü Link Text ü Partial Link Text www. a 1 qa. ru
Пример поиска элементов www. a 1 qa. ru
Примеры простых локаторов § text=“text” title=“” value=“” name=“username”/> ü Id = username § ü Name = autologin § ü Class Name = remind www. a 1 qa. ru
Здравствуйте ü Tag Name" src="https://present5.com/presentation/1/-73670084_315552945.pdf-img/-73670084_315552945.pdf-11.jpg" alt="Примеры простых локаторов §
Когда нельзя обойтись простыми локаторами? § Необходимо найти несколько элементов § Необходимо учитывать отношение одного элемента к другому § Важна позиция элемента § Поиска элемента по нескольким атрибутам www. a 1 qa. ru
Сложные локаторы: Xpath § XPath (XML Path Language) — язык запросов к элементам XML или XHTML документа. § Строка XPath — это фактически путь к элементу в дереве, где каждый уровень разделяется косой чертой «/» www. a 1 qa. ru
Xpath: Примеры локаторов
Xpath: Оси § self: : — возвращает текущий элемент. (. ) § ancestor: : — возвращает множество предков. § ancestor-or-self: : — возвращает множество предков и текущий элемент. § attribute: : — возвращает множество атрибутов текущего элемента. (@) § child: : — возвращает множество потомков на один уровень ниже. www. a 1 qa. ru
Xpath: Оси § namespace: : — возвращает множество, имеющее пространство имён (то есть присутствует атрибут xmlns). § parent: : — возвращает предка на один уровень назад. (. . ) § descendant: : — возвращает полное множество потомков. (. //) § descendant-or-self: : — возвращает полное множество потомков и текущий элемент. § following: : — возвращает необработанное множество, ниже текущего элемента. www. a 1 qa. ru
Xpath: Оси § following-sibling: : — возвращает множество элементов на том же уровне, следующих за текущим. § preceding: : — возвращает множество обработанных элементов исключая множество предков. § preceding-sibling: : — возвращает множество элементов на том же уровне, предшествующих текущему. www. a 1 qa. ru
Xpath : Пример локатора с осями
Xpath : Пример локатора с осями
Xpath : Пример локатора с осями
Xpath : Функции обработки наборов узлов § node-set node() - возвращает все узлы ü. //div/node() § String text() - возвращает набор текстовых узлов ü. //span[contains(text(), ”Текст в элементе”)] § number position() - возвращает позицию элемента в множестве ü. //div[@id=‘mail’] /div[position()=3] § number count(node-set) — возвращает количество элементов в node-set ü. //div[count(span)=2] www. a 1 qa. ru
Xpath : Строковые функции § boolean starts-with(string, string) - возвращает true если первая строка начинается со второй, иначе false. § boolean ends-with(string, string) - возвращает true если первая строка заканчивается второй, иначе false. § string normalize-space(string) - убирает лишние и повторные пробелы, заменяет пробелами управляющие символы. www. a 1 qa. ru
Xpath : Поиск по атрибуту элемента § Строковые функции часто применяются при поиске элементов по их атрибутам (части значения атрибута) ü xpath=//div[starts-with(@class, “title”)] ü xpath=//div[contains(@class, “title”)] ü xpath=//div[ends-with(@class, “title”)] www. a 1 qa. ru
Xpath : Логические функции § or , and — логические «или» и «и» § = , < , >= — логическиее «равно» , «меньше» , «больше либо равно» § boolean true(), false() - возвращает истину, ложь. § boolean not(boolean) - логическое отрицание, возвращает true если аргумент false и наоборот. ü xpath=. //label[text()=“Пароль” and @for=“password”] www. a 1 qa. ru
Сложные локаторы: CSS § CSS — язык стилей, определяющий отображение HTMLдокументов § При запуске тестов на Internet Explorer'е использование CSS локаторов предпочтительней других из-за скорости выполнение тестов www. a 1 qa. ru
CSS: Поиск по тегу элемента § css = input § xpath= //input § * – любой элемент § css = div * § xpath = //div/* www. a 1 qa. ru
CSS: Поиск по атрибуту элемента Вид локатора Описание E#myid Сокращение для E[id=“myid”] E. myclass Сокращение для E[class=“myclass”] E[foo~=“bar”] Элемент E, атрибут “foo” которого является списком значений, разделенных whitespace-символами, и "bar" – одно из значений E[foo^=“bar”] Элемент E, атрибут “foo” которого начинается с “bar” E[foo$=“bar”] Элемент E, атрибут “foo” которого заканчивается на “bar” E[foo*=“bar”] Элемент E, атрибут “foo” которого содержит подстроку “bar” E[foo|=“bar”] Элемент E, атрибут “foo” которого является списком значений, разделенных дефисами, и начинается с “bar” www. a 1 qa. ru
CSS: Поиск по атрибуту элемента § Любое значение атрибута ü css = input[value] ü xpath = //input[@value] § Указанное значение атрибута ü css = input[type=“password”] ü xpath = //input[@type=“password”] § Несколько атрибутов ü css = input[type=“button”][value=“Create”] ü xpath = //input[@type=“button”][@value=“Create”] ü xpath = //input[@type=“button” and @value=“Create”] www. a 1 qa. ru
CSS: Поиск по тексту § Данные функции чувствительны к регистру § Не поддерживаются в css 3. 0 Пример: Message ü css = span: contains(“Message”) ü xpath = //span[contains(text(), “Message”)] ü css = span: contains(“^Message$”) ü xpath = //span[text()=“Message”] www. a 1 qa. ru
CSS: Поиск по родителю элемента
CSS: Поиск по предку элемента
Cell text | . . .
CSS: Поиск по индексу элемента
Cell |
CSS: Поиск по элементу рядом
Инструментарий www. a 1 qa. ru
Инструментарий для Firefox § Firebug www. a 1 qa. ru
Инструментарий для Firefox § Firepath, Firefinder for Firebug www. a 1 qa. ru
Инструментарий для Chrome § CSS and XPath checker § Xpath Helper www. a 1 qa. ru
Инструментарий для Internet Explorer § IE developer tools www. a 1 qa. ru
Советы по построению локаторов § Однозначная идентификация объекта § Стабильность § Относительная простота ü //div[@id='onliner-search']/a[contains(. , 'Каталог и цены')] www. a 1 qa. ru
Советы по построению локаторов § Медленная работа XPath в IE (в частности, “//”) ü //table[@id=“myid”] //td ü //table[@id=“myid”]/tbody/tr/td § Что проверяем – наличие или отсутствие? ü //table[contains(@id, “myid”)] ü //table[@id=“myid_is_complex”)] www. a 1 qa. ru
Спасибо Contact us 5910 Countryard Drive, Ste. 170 Austin, TX 78731 info@a 1 qa. ru www. a 1 qa. ru