Получение значения

Оглавление


Описание

Данный экшен служит для получения значения указанного элемента. Это может быть:

  • Высота\ширина

  • Внутренний текст\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-})

Поиск элемента


Настройка действия: Вкладка “Дополнительно”

Подождать перед выполнением

Сколько времени экшен будет ожидать перед выполнением.

Ждать элемент не более

Если по истечении указанного времени элемент не появился на странице, то экшен завершит работу с ошибкой.


Пример использования

Разберём один из способов применения. На примере https://lessons.zennolab.com/ru/advanced.

С помощью Установки значений и переменных профиля заполняем поля формы. В реальном проекте нам бы пришлось распознавать капчу с помощью сервисов или вручную, но на данной странице капча-картинка всегда одна и та же. После ввода всех данных, с помощью экшена Выполнить событие, кликаем по кнопке Создать аккаунт. Далее события могут развиваться в нескольких направлениях:

 

Если мы всё верно заполнили и правильно разгадали капчу, то получим страницу, где будет текст Wellcome!

Если капча разгадана неверно, то загрузится странице с текстом wrong captcha

 

Используя конструктор действий создаём экшен Взятия значения, в который сохраняется текст, показанный на скриншотах выше. Но в переменную попадает много лишнего - текст adv_reg, названия пунктов меню. Используя Обработку текста и простое регулярное выражение (Wellcome!|wrong\ captcha) ищем либо Welcome либо wrong captcha. С помощью Switch делаем проверку на то, что содержится в переменной. Если там Welcome, то отправляем информационное сообщение в лог; если wrong captcha - отправляем сообщение в лог о том, что не удалось зарегистрироваться

 

Полезные ссылки