Автоматизация выбора шрифта в Блокноте

Рассмотрим, как можно c помощью робота автоматизировать выбор шрифта в блокноте.

Предположим, требуется, чтобы робот выбрал в этом окне необходимый шрифт. Задача усложнена наличием полосы прокрутки.

Нажмите на кнопку Запись последовательности кликов и запишите клик на каком-либо пункте из длинного списка шрифтов. Кликните на BookmanOldStyle.

Блок добавился в текущий процесс. Рассмотрим селектор.

Обратите внимание на последнюю строку. В ней есть имя шрифта и его порядковый номер в списке — 38 (в колонке Index). Получается, что на компьютере, где мы собираемся выполнять сценарий, мы должны всегда иметь этот шрифт в списке шрифтов под номером 38. Если условие не выполнится, робот не выберет этот пункт. Можно сделать так, чтобы робот выбирал именно шрифт BookmanOldStyle безотносительно его номера в списке, т.к. в разных ОС номер может различаться. Или наоборот, будет выполняться перебор позиций списка, так, чтобы был выбран шрифт под конкретным номером независимо от его имени. Мы можем либо удалить порядковый номер, и тогда мы будем искать конкретно BookmanOldStyle, либо удалить название шрифта и искать по индексу. И здесь будет полезно, как обычно при задачах перебора, подставлять переменные в ячейки селектора. Это можно сделать с помощью кнопки “Вставить переменную”.

Создадим Переменную1 текстового типа.

Откроем редактор селектора. Можно вставить переменную с помощью кнопки или просто вписать её имя вручную в ячейку.

Теперь робот будет искать шрифт, хранящийся в Переменной1. Не забывайте, что перед именем переменной необходимо ставить символ $. Значение колонки Index нужно будет удалить, чтобы поиск производился независимо от позиции шрифта в списке.

Если Переменная1 является числом, то можно подставить её значение в колонку Index

Тогда мы можем сделать цикл, в котором пробегаем по всем значениям этой переменной, допустим, от 1 до 100, и возьмём содержимое каждого элемента этого списка в текстовую строку, чтобы понять, какие вообще шрифты имеются в системе. Это можно сделать с помощью блока “Получить текст”.

Как в таком случае понять, какое количество элементов в этом списке? Чтобы пробежать весь список, нужно знать количество элементов. Это не так важно, т.к. мы можем заранее задать какое-то большое количество элементов, например, 3000, которого точно никогда не будет. И далее можем воспользоваться коннектором “Если ошибка”, для того, чтобы выйти из нашего цикла.

Как это выглядит на практике:

Имеется цикл. Его начальное значение 0 или 1. Важный момент: в разных приложениях и веб-страницах могут быть разные начальные значения элемента. Это может быть 0 или 1. Нужно проверять заранее.

Зададим для нашего цикла начальное значение 0, конечное значение 1000. В качестве итератора цикла (переменной, в которую каждый раз будет записываться новое значение) возьмем переменную Index.

Теперь подключим к выходу цикла блок “Клик мышкой”, т.е. просто прокликаем по всем этим пунктам. Выход блока “Клик мышкой” соединим с началом цикла и поставим следующий блок – “Лог”.

Если клик мышью будет неуспешным, т.е. мы не найдём индекс какого-то пункта этого списка, возникнет ошибка. Соединим коннектор “Если ошибка” с входом следующего после цикла блока (Лог). Пропишем нашу переменную Index в селекторе.

Таким образом, мы сможем быстро пройти и прокликать по всем пунктам этого списка, даже если мы не знаем, сколько там значений. Возвращаясь к примеру с калькулятором, мы так делали в одном проекте, где нужно было показывать клики мышкой по разным кнопкам, выбирать произвольные числа, складывать их и вычитать и т.д. Можно было, конечно, записать 10 кликов по 10 кнопкам, а потом выбирать с помощью 10 условий (если значение переменной = 1, то кликаем по такой-то кнопке и т.д.). Но мы обошлись одним блоком клика, т.к. внутри этого блока в селекторе, в колонке Index прописали переменную Index, содержащую порядковый номер.

В зависимости от того, какое будет значение в этой ячейке, на эту кнопку робот будет кликать.

Кнопки для записи действий работают достаточно однотипно. Например, откроем Блокнот и нажмём кнопку “Задать текст элементу”.

.

Зададим текст и сохраним.

Блок добавляется в текущий проект.

У него также есть селектор, впишем туда строку “Привет”.

Если нужно записать это не константой, а переменной, тогда необходимо вписать в это поле имя соответствующей переменной.

Остальные блоки записи кликов работают похожим образом.