Получение значения
🔗 Оригинальная страница — Источник данного материала
Описание
Данный экшен служит для получения значения указанного элемента. Это может быть:
- Высота\ширина
- Внутренний текст\HTML код
- HTML атрибуты - id, class, name, style и др.
- Имя тэга
- И многое другое
Как добавить действие в проект?
Через контекстное меню Добавить действие → Табы → Получение значения
Через ❗→ конструктор действий.
Либо воспользуйтесь ❗→ умным поиском.
Как выбрать элемент для взятия значения?
Рассмотрим на примере https://lessons.zennolab.com/ru/registration. Представим, что Вам нужно получить текст кнопки, которая отправляет форму. Для этого делаем клик ПКМ по этой кнопке, из контекстного меню выбираем *В конструктор действий.
Внизу, под окном браузера откроется ❗→ *Конструктор действий
Данные для поиска будут автоматически подобраны таким образом, что в результате поиска останется только один элемент. Ваши действия
- В пункте *Действие выбрать *Get^(1)^(получить).
- Текст кнопки хранится в атрибуте value поэтому именно его и выбираем из выпадающего списка *Атрибут^(2)^. В поле *Значение появится то, что хранится в выбранном атрибуте^(2)^, в нашем случае - это текст “Создать аккаунт”.
- Перед добавлением экшена в проект не лишним будет протестировать его работу нажав соответствующую кнопку (особенно если Вы вносили изменения в конструкторе действий).
- (Необязательно, но желательно) Добавить комментарий к экшену (особенно это касается экшена *Получение значения т.к. комментарий по умолчанию крайне малоинформативен)
- Добавляем экшен в проект клинув кнопку *Добавить в проект
Для чего это используется?
-
Парсинг данных (правда для этого существует более подходящий инструмент - экшен ❗→ Парсить страницу)
-
Проверка наличия элемента на странице. Это может быть полезно для:
-
определения того авторизовались ли мы (например, когда пользователь авторизован на сайте, то появляется кнопка перехода в личный кабинет, если она есть, значит всё ОК. Либо наоборот, когда пользователь авторизован, то пропадает какой-то элемент, как вариант - кнопка “Вход”, если её нет, значит мы вошли на сайт)
-
поиск сообщений с ошибками (очень полезно при разгадывании капчи: если капча была разгадана неверно, то очень часто на странице появляется новый HTML элемент с текстом ошибки; если после отправки капчи возвращается страница с таким элементом, то мы пробуем разгадать капчу ещё раз. Так же для проверки наличия текста на странице можно воспользоваться специальным экшеном ❗→ Проверка наличия текста )
-
Проверка видимости элемента: бывают случаи, когда шаблон находит элемент, но по факту тот не отображается на странице (особенности построения HTML страниц), например это кнопка регистрации. Чтоб точно проверить отображена ли она на странице можно взять её атрибуты height (высота) и width (ширина), и проверить, чтоб каждый из них был больше 0.
Настройка действия: Вкладка “Основные”
После добавление экшена через ❗→ конструктор действий в проект, откроем его настройки:
Что брать
Выбираем что именно нужно получить - id, class, innerText, innerHtml, value, height, width, style
и др.
В данном поле можно и вручную указать значение, а не выбирать из предложенного.
На сайтах часто мо жно встретить атрибуты data-... (примеры - data-name, data-value, data-testid, data-whatever, ...)
вот такие атрибуты (которых нет в выпадающем списке экшена) можно прописать вручную.
Можно использовать переменные проекта ({ -Variable.var\_name- }
)
Поиск элемента
Прежде чем провзаимодействовать с элементом на странице его надо найти. В экшенах ❗→ Получение значения , ❗→ Установка значения , ❗→ Выполнить событие , ❗→ Событие Touch , ❗→ Событие Swipe существует два способа поиска элементов - классический и с помощью XPath.
Классический - Поиск по параметрам HTML элемента: тэг, атрибут и его значение.
XPath - поиск с помощью ❗→ XPath выражений. С помощью него Вы можете реализовать более универсальный и устойчивый к изменениям вёрстки способ поиска данных в сравнении с классическим поиском или регулярными выражениями.
Какая вкладка
Выбираем вкладку, на которой будет производиться поиск элемента. Возможные значения:
- Активная вкладка
- Первая
- По имени - при выборе данного пункта появится поле ввода для названия вкладки.
- По номеру - в поле ввода надо будет ввести порядковый номер вкладки (нумерация начинается с нуля!)
Документ
Рекомендуется ставить значение -1 (поиск во всех документах на странице).
Форма
Тоже лучше ставить -1 (поиск по всем формам на странице). При выборе такого значения шаблон будет более универсальным.
Почему лучше ставить "-1"?
Пример: на странице 3 формы - поиск, регистрация, заказ товара. Нам надо кликнуть в форме заказа по кнопке и мы выбрали в качестве значения поля “Форма” - 2 (два) (нумерация с нуля). Спустя какое-то время на сайте появляется новая форма, для входа, и вставлена она перед формой заказа. Под номером 2 теперь будет форма входа и наш шаблон либо выдаст ошибку о том, что кнопка не найдена, либо (что гораздо хуже) будет кликать в другой форме по другой кнопке.
В настройках программы можно отметить два чекбокса - Искать во всех формах на странице и Искать во всех документах на странице и тогда всегда при добавлении элемента в Конст руктор действий для номера документа и формы будет стоять -1.
Тэг (только классический поиск)
Собственно HTML тэг у которого нужно получить значение.
Можно указать сразу несколько тегов, разделитель - ; (точка с запятой)