🎨 Как нарисовать смайлик и квадрат в онлайн-редакторе графики Paint с помощью Selenium
В этой статье напишем два скрипта, рисующих смайлик и квадрат в онлайн-версии Paint с помощью инструмента для автоматизации действий браузера Selenium.
Когда работаешь тестировщиком, бывает не знаешь, какую задачу тебе подкинет новый день. Может, это будет нагрузочное тестирование, проверка отказоустойчивости или появится надобность написать скрипт для генерирования данных.
В практике попадаются интересные и необычные задачи. Одной из таких задач является взаимодействие в UI c нестандартными элементами. Поэтому, придумаем задачу, которая на первый взгляд кажется сложной, но на деле оказывается достаточно простой. Пусть она будет звучать так: нарисовать в онлайн-версии программы Paint простой рисунок.
Составим план выполнения задачи:
- Открыть Online Paint.
- Нарисовать рисунок.
- Сохранить его на компьютер.
Перед тем как писать сам тест, нужно подготовить окружение. Это достаточно рутинная задача при создании новых тестов или тестовых проектов, поэтому не буду расписывать долго подготовку окружения к написанию UI теста на Selenium, а составлю чек-лист, чтобы можно было проверить, что мы ничего не забыли (добавлю только, что в этот раз мы напишем скрипт на языке программирования Java и, соответственно, окружение создадим для него):
- Добавить Selenium и Junit в
pom file
:
2. Скачать дистрибутив Selenium в main/resources
(в этом тесте у меня chromdriver
):
3. Написать метод для подключения дистрибутива (для удобства вынесу в @Before
):
4. Написать метод закрытия WebDriver
:
Окружение готово, можно приступим к выполнению. Откроем сайт https://jspaint.app/ и с помощью панели разработчика посмотрим, что же это за элемент используется на сайте, на котором предстоит рисовать.
Оказывается, это canvas
. Canvas
– элемент HTML5, предназначенный для создания растрового двухмерного изображения с помощью скриптов, обычно на языке JavaScript.
Для пробы пера напишем сначала простой тест для проверки способов взаимодействия с элементом:
Пробный тест прошел легко. Его результат можно увидеть на gif-изображении:
Теперь усложним задачу – нарисуем смайлик.
Шаги, которые будут выполняться в тесте:
- Открыть Online Paint.
- Нарисовать смайлик.
- Сохранить полученную картинку.
В первом тесте мы получали картинку, двигая пером по заданным координатам. Нарисовать сложную картинку таким способом не так просто. Поэтому можно поменять способ взаимодействия с этим элементом и отправить итоговое изображение с помощью JavascriptExecutor.
JavascriptExecutor
– это интерфейс Selenium, который позволяет взаимодействовать напрямую с HTML DOM веб-страницы и делает это, выполняя код на JavaScript. Такой способ значительно ускоряет выполнения теста, но теряется полная идентичность действиям пользователя. Является ли это плюсом или минусом – решать вам. В любом случае использование JavascriptExecutor
может пригодиться в других тестах, поэтому полезно уметь пользоваться им на практике.
По намеченному плану получается такой код:
После выполнения теста можно увидеть такую картинку:
Оказалось, нарисовать картинку в онлайн-Пейнте несложно. Нужно всего-то понять, с каким элементом взаимодействовать и выбрать правильный метод этого взаимодействия.
Выводы
Самые необычные задачи – самые интересные. Но и они всегда выполняются по шагам. Если декомпозировать задачу, то ее выполнение значительно облегчается. Да, во время работы сталкиваешься с определенными трудностями, но это того стоит. Трудности закаляют. Удачи!