Разделы портала

Онлайн-тренинги

.
Selenium + AutoIT. Автоматизация тестирования Windows окон
29.05.2020 00:00

Оригинальная публикация

Меня зовут Иван Сидоренко, я инженер по тестированию в компании Digital Design.

Передо мной стояла задача разработки авто-тестов для одного из наших проектов с помощью инструмента Selenium WebDriver на языке Java. Подробнее про это вы можете прочитать в моей прошлой статье

Selenium — это инструмент для автоматизации веб-приложений в различных браузерах. В ходе разработки авто-тестов мне попался сценарий, при котором необходимо взаимодействовать с Windows окном для загрузки файлов. К сожалению, Selenium не умеет работать с Windows окнами, поэтому нужно было найти альтернативное решение.

В ходе поисков выбор пал на AutoIT. Этот инструмент разработан для автоматизации задач в Microsoft Windows, что и было необходимо. В этой статье я опишу работу с AutoIT для решения поставленной задачи. Предполагается, что у вас уже развернута среда разработки с подключенным Selenium WebDriver. В качестве примера будет использоваться окно для загрузки фотографий на одном из сайтов по редактированию фото. Итак, приступим.

1. Скачиваем и устанавливаем AutoIT

2. Переходим на один из сервисов по загрузке фотографий, например, сюда. Здесь необходимо нажать кнопку «Загрузить фотографии», для получения такого Windows окна



3. Теперь переходим в папку AutoIT3 и выбираем Au3Info.exe



4. Au3Info — это инструмент, который позволяет получить информацию о необходимом окне для автоматизации. Чтобы получить информацию о конкретном элементе просто перетащите курсор из блока Finder Tool на элемент окна. Получим значения атрибутов поля ввода элемента «Имя файла»



Для использования в скрипте AutoIT нам понадобиться атрибуты Title = 'Открытие' и Class = 'Edit'

5. Перейти в папку AutoIt3\SciTE и выбрать SciTE, здесь напишем такой простой скрипт



Здесь ControlFocus — метод, который устанавливает фокус на элементе окна «Имя файла»

— Первый параметр это значение Title, нужного окна, в нашем случае оно равно 'Открытие'
— Второй параметр необязателен
— Третий параметр это объедение значений атрибута Class и Instance, т.е. получается Edit1



ControlSetText — метод, с помощью которого происходит ввод текста в input элемента «Имя файла»


  • Первый параметр — значение Title
  • Второй параметр необязателен
  • Третий параметр это объедение значений атрибута Class и Instance, т.е. получается Edit1
  • Четвертый параметр — текст, который будет введен в input, здесь прописываем путь до файла, который будем прикреплять

ControlClick — кликает по кнопке «Открыть»

  • Первый параметр — значение Title
  • Второй параметр необязателен
  • Третий параметр это объедение значений атрибута Class и Instance, т.е. получается Button1



6. Сохраняем скрипт как Autoit



7. Теперь, чтобы запустить скрипт, его нужно скомпилировать. Для компиляции скрипта есть два варианта — либо для 64 разрядной системы, либо для 86. Выберете соответствующий вашей операционной системе.



8. Получили скомпилированный файл AutoItScript.exe Проверим его работоспособность — перейдем на <www.iloveimg.com/ru/photo-editor">сервис редактированию фото и нажмем «Выбрать изображение». Теперь запустим AutoItScript.exe



9. Теперь этот скрипт можно добавить в Selenium. Например для Java, такое добавление будет выглядеть вот так:

Runtime.getRuntime().exec("С:\\auto\\AutoItScript.exe");

Это решение отличается высокой стабильностью. Также из-за того, что в конечном итоге получаем исполняемый файл это решение можно использовать с разными языками программирования. Недостатком является то, что такой скрипт нельзя использоваться в headless моде — режиме, при котором не происходит запуск браузера.

Надеюсь эта статья поможет вам в автоматизации тестирования!

Обсудить в форуме