ArtOfLife
(Sergey Korol)
05.Ноябрь.2014 20:47:04
#1
По просьбам трудящихся и лентяев выкладываю собрание сочинений местных авторов на тему локаторов:
Вэбинар от Миши Поляруша о локаторах.
[изображение]
Знание типов локаторов - это только первый шаг к умению рационально их использовать . Умение же ими пользоваться - один из ключевых навыков работы с Selenium -ом, так как всё остальное, что необходимо знать, сводится к изучению библиотеки (а основного функционала там немного ) и ряда частных случаев , как правило, обходных маневров. Всё остальное уже больше относится к умению работать с тем или иным языком программирования. Поэтому в данном разделе мы рассмотрим, какой локатор и в каком случае удобнее подобрать. В принципе, локаторы можно расположить по приоритетам использования в следующем порядке:
link= (только для ссылок, естественно, причем при условии, что данная …
При работе с Селениумом практически первое, с чем придется столкнуться - это локаторы. Что это такое? Локатор - это строка, уникально идентифицирующая UI-элемент. Когда вы делаете клик мышкой, ввод текста и прочие действия, вы эти действия выполняете над вполне конкретным объектом. Селениум поступает так же. Но поскольку он не умеет читать ваши мысли, то ему надо четко указать объект, для которого надо применить то или иное действие. Где локаторы используются? Посмотрите на методы, отвечающие за ввод/извлечение данных из элементов управления (это методы click, type, select, isElementPresent, keyPress и т.п.). Первым параметром подобных методов всегда идет локатор. Итак, какие виды …
Что такое локаторы элементов и для чего они нужны? Локатор элемента - это механизм определения местонахождения элемента относительно 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
В данной стать…
В поддержку новой инициативы - мега склад примеров на github
Создаем примеры по автоматизации вместе, просто присылайте pull requrest
А также инициативы создания at.info code recipes
Вашему вниманию предлагается рецепт создания кастомных локаторов.
Казалось бы, зачем нужно создавать кастомные локаторы, если сей велосипед уже давно изобретен в качестве связки FindBy + WebElement, либо использования чистого By?
Начнем с простого. Лично я предпочитаю использовать класс By, ввиду гибкости его последующего применения. Но, скажу по правде, сама читабельность и громоздкость конструкций по типу:
private By element = By.id("elementID");
так и напрашивается на рефакторинг, в отличии…
Сама идея модификации исходников FirePath возникла после ознакомления с проектом SWD.Starter . Уже второй раз вижу кастомную реализацию инспектора элементов. И тут мне стало интересно, насколько сложно будет разобраться с уже готовым инспектором всем известного FireBug + FirePath и подправить его под свои нужды.
С JS почти не работал, ровно как и с XUL. Так что пришлось немного повозиться. В итоге, получилось прикрутить филд задания имени локатора, путь к файлу, куда надо сохранить пару (имя / локатор) ну и саму кнопку с обработчиком. О результатах эксперимента можно почитать здесь . Пощупать модифицированные исходники можно на нашем складе примеров . Обновленный лейаут получился сле…
Зачастую меня немного подтролливают, когда я произношу фразу “все зависит от проекта”. Ну действительно же, зависит. И не только от проекта, но от фреймвоков, на котором реализуется проект.
Когда мы выбираем локатор для идентификации элемента страницы, мы же ведь хотим, чтобы он был стабильным, ведь так? А стабильность… это дело относительное… по крайней мере, относительно между различными фреймворками.
Начнем с клиент-сайда
Голый HTML или Bootstrap + JQuery
В этом случае, обычно очень хорошо работает идентификация по HTML id и CSS селекторам.
Ведь программисты сами обращаются к элементам по id, и учитывая то, что переименование id элемента грозит поиском и заменой по всем фа…
По моим личным наблюдениям, львиная доля времени при написании авто-тестов уходит на редактирование/проверку/нахождение локаторов элементов (XPath, css selector, …)
А почему бы не редактировать локаторы прямо во время запуска теста? Хочу предложить к рассмотрению видео с данной возможностью:
После завершения работы с debug окном тест продолжает своё выполнение, что, по-моему, немаловажно.
Наша компания своими силами разработала мануал по XPath. Он написан простым и доступным языком, и в первую очередь предназначен для обучения тестировщиков-автоматизаторов в рамках учебного курса проходящего в компании. Но мы уверены, что этот мануал будет полезен не только им, но и любому начинающему изучать XPath.
Всем доброго времени суток.
Не так давно в одной из тем я задал вопрос - почему во многих примерах на форуме наши коллеги используют xpath? почему не css?
Ответа я сразу не получил, и очень хотелось бы услышать некоторые мысли по этому поводу.
В свою очередь я немного посидел и посмотрел на некоторые аспекты этих 2-х способов. Свои мысли изложил у себя здесь - Automated testing blog: Selenium - CSS или XPath?
Было бы интересно подискутировать. Разумеется, без холивара
Сегодня совершенно случайно наткнулся на интерактивную игру-обучалку основ формирования CSS селекторов. С удовольствием с товарищами прошли ее во время митинга. Конечно достаточно короткая, но для получения базового понимания того, как строятся CSS локаторы - самое оно.
[изображение]
2 лайка
ArtOfLife
(Sergey Korol)
05.Ноябрь.2014 20:47:13
#2
Эта тема прилеплена. Она будет всегда отображаться первой в списке тем своей категории, пока не будет отлеплена модератором, или сброшена вниз, когда каждый пользователь нажмет кнопку «Отлепить»
polusok
(Mykhailo Poliarush)
02.Декабрь.2014 07:58:39
#3
Вот еще одна презентация по использованию xpath в webdriver
1 лайк
rpwheeler
(rpwheeler)
02.Декабрь.2014 09:14:33
#4
http://www.w3schools.com/cssref/css_selectors.asp
CSS Selectors
Краткая и лёгкая, но ёмкая и удобная таблица по CSS-селекторам (English)
1 лайк
extr3mal
(Валентин Розловенко)
13.Май.2015 13:06:15
#5
Some programming conventions are best represented in a chart. Nobody will claim that XPath or CSS are entirely intuitive, as they are terse, economical ways of identifying elements in a hierarchy. However, a chart with recipes and examples is a...
очень толково и кратко о всех возможных локаторах
2 лайка