Автоматизация выбора шрифта в Блокноте
Last updated
Last updated
Рассмотрим, как можно 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, содержащую порядковый номер.
В зависимости от того, какое будет значение в этой ячейке, на эту кнопку робот будет кликать.
Кнопки для записи действий работают достаточно однотипно. Например, откроем Блокнот и нажмём кнопку “Задать текст элементу”.
Зададим текст и сохраним.
Блок добавляется в текущий проект.
У него также есть селектор, впишем туда строку “Привет”.
Если нужно записать это не константой, а переменной, тогда необходимо вписать в это поле имя соответствующей переменной.
Остальные блоки записи кликов работают похожим образом.