diff --git a/docs/Break.md b/docs/Break.md index e69de29..ac5238c 100644 --- a/docs/Break.md +++ b/docs/Break.md @@ -0,0 +1,7 @@ +#

Модуль «Break»

+ +

Для «аварийного» выхода из простого цикла используют модуль «Break». Например, в цикле ведется поиск конкретного изображения, и если такое изображение найдётся, следует нажать на него, считать какие-либо данные и перейти к следующему действию, иначе – выйти из цикла и не проигрывать следующее действие. Для такого сценария необходимо создать цикл, в котором будет модуль «Условие», в одной из веток которого будет находиться модуль «Break»:

+ +## +

![Screenshot](img/break_1.png)

+

Модуль «Break» не требует настройки, но может применяться только внутри модуля «Цикл». \ No newline at end of file diff --git a/docs/CCode.md b/docs/CCode.md index e69de29..c964c8a 100644 --- a/docs/CCode.md +++ b/docs/CCode.md @@ -0,0 +1,11 @@ +#

Модуль «Код С#»

+ +

Модуль «Код C#» предназначен для использования сложных вычислений, отсутствующих в студии.

+

В модуле допускается использование переменных студии.

+ +## Интерфейс модуля +

Данный модуль состоит из двух полей: «Переменная» и «Код». +

![Screenshot](img/CCode_1.png)

+

Поле «Переменная». В поле указывается переменная, в которую будет записан результат. +

Поле «Код». В поле необходимо ввести часть кода в соответствии с синтаксисом языка C# без описания используемых библиотек, как если бы это была функция внутри существующего проекта, у которой главное условие – она обязательно должна что-то возвращать, то есть иметь слово «return». +

![Screenshot](img/CCode_2.png)

diff --git a/docs/Calculation.md b/docs/Calculation.md index e69de29..99ccccc 100644 --- a/docs/Calculation.md +++ b/docs/Calculation.md @@ -0,0 +1,33 @@ +#

Модуль «Вычисления»

+ +

Модуль «Вычисления» является связующим модулем или модулем пред- и постобработки данных из других модулей. Данный модуль необходим для создания, вычисления и изменения значений переменных.

+ +## Интерфейс модуля +

Окно модуля очень простое и состоит всего лишь из поля для ввода и кнопок «Сохранить» и «Отмена». +

![Screenshot](img/calculation_1.png)

+

Поле «Выражение». В поле построчно вводятся операции, которые необходимо провести с переменными. Это может быть сложение, вычитание, умножение или вычисление функции. +

Поддерживаемые операции +

• + (сложение); +

• - (вычитание); +

• * (умножение); +

• / (деление); +

• % (остаток от деления); +

• \ (целое от деления); +

• ^ (возведение в степень). +

Все строки должны быть вида «Переменная = Операция;», операция в свою очередь может состоять как из одиночного числа или строки, так и из нескольких операндов, связанных вышеуказанными операторами, либо быть функцией. +

Каждая строка должна быть отделена от следующей символом «;». +## Пример работы с модулем +

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

![Screenshot](img/calculation_2.png)

+

![Screenshot](img/calculation_3.png)

+

Что делает написанный выше код? А вот что – получаем сегодняшний день, например, сегодня 25 марта, вычитаем из полученной даты на один день больше, чем на самом деле есть, то есть 26 дней и оказываемся в последнем дне предыдущего месяца – 29 февраля (если год високосный). Более подробно: +

1 строка – использование функции GetDate, которая возвращает сегодняшнюю дату, и сохранение её результата в переменную @now (@now = 25.03.2020); +

2 строка – использование функции GetDay, которая принимает один параметр – дату, и возвращает из поданной в неё даты только день. Подадим в функцию в качестве параметра сегодняшнюю дату, которая лежит в переменной @now. После этого запишем результат работы функции в переменную @day (@day = 25); +

3 строка – увеличиваем переменную @day на единицу (@day = 26); +

4 строка – использование функции DateAdd. Функция принимает три параметра: 1) day, month или year – компонент даты, с которым работаем, 2) – количество, которое прибавляется к выбранному компоненту даты, 3) – дата, с которой проводятся манипуляции. Вычтем из сегодняшней даты 26 дней – используем DateAdd с параметрами: +

1. day – вычитаем дни; +

2. –@day – так как функция по умолчанию складывает, добавим знак минус; +

3. @now – сегодняшняя дата. +

В итоге получается, что мы вычитаем из 25.03.2020 26 дней и оказываемся в 29.02.2020. + + diff --git a/docs/Condition.md b/docs/Condition.md index e69de29..20fa092 100644 --- a/docs/Condition.md +++ b/docs/Condition.md @@ -0,0 +1,40 @@ +#

Модуль «Усовие»

+ +

Описываемые в этой части модули сами по себе ничего не делают, их следует использовать вместе с любыми другими. У описываемых модулей (кроме модуля «Break»), помимо привычного «Примечания», есть еще несколько параметров, обязательных для заполнения, но нет отдельного окна с настройками. +

Модуль «Условие» позволяет в зависимости от указанного условия выполнять те или иные действия. Условием может быть любое выражение, которое приводится к значению «True» или «False».

+ +## Интерфейс модуля +

Модуль состоит из полей «Примечание» и «Условие». Действия, которые должны выполняться при значении условия «True», добавляются в раздел «THEN», при значении «False» - в раздел «ELSE». Действия добавляются в модуль перетаскиванием их из меню или другого места рабочей области. +

![Screenshot](img/condition_1.png)

+

Поле «Примечание» предназначено для внесения комментария от разработчика робота. +

Поле «Условие» заполняется по правилам языка программирования C#. Для пользователей, незнакомых с этим языком, предлагается помощь в виде «Конструктора условий», доступная по кнопке справа от условия -![Screenshot](img/condition_2.png). +## Конструктор условий +

Конструктор условий позволяет составлять условия в соответствии с синтаксисом языка C#. +

![Screenshot](img/condition_3.png)

+### Добавление +

Для того чтобы составить условие, необходимо заполнить оба операнда, выбрать тип операндов (строки или числа), выбрать оператор между ними из предложенного и нажать на кнопку «Добавить»: +

![Screenshot](img/condition_4.png)

+

![Screenshot](img/condition_5.png)

+

Список операций для строк и для чисел отличается, поэтому сначала выберите тип операндов, а лишь затем операцию. +### Связывание +

Несколько условий можно связать с помощью логического «И» либо логического «ИЛИ». +

Делается это следующим образом – удерживая клавишу Shift, выбираются несколько условий, которые должны быть соединены одним оператором, затем нажимается кнопка с соответствующим логическим оператором: +

![Screenshot](img/condition_6.png)

+

![Screenshot](img/condition_7.png)

+

Символ «||» означает логическое ИЛИ, символ «&&» - логическое И. +### Разъединение +

Условия, состоящие из нескольких простых условий, то есть те, которые используют логическое И или ИЛИ, можно разъединить, нажав на соответствующую кнопку. Разъединение происходит по логическим операторам. +

![Screenshot](img/condition_8.png)

+

![Screenshot](img/condition_9.png)

+### Сохранение +

Для сохранения условия необходимо нажать на кнопку «Сохранить». Получившиеся условие вставится в поле «Условие» условного модуля: +

![Screenshot](img/condition_10.png)

+

![Screenshot](img/condition_11.png)

+

Законченный модуль может выглядеть следующим образом: +

![Screenshot](img/condition_12.png)

+### Сворачивание +

Для уменьшения занимаемого места в рабочей области проекта, можно свернуть входящие в данный модуль действия по кнопке «Свернуть». +

![Screenshot](img/condition_13.png)

+

Для удобства использования также можно менять размеры веток «THEN» и «ELSE» вплоть до полного сворачивания одной из них, если та, к примеру, не используется. +

![Screenshot](img/condition_14.png)

+

![Screenshot](img/condition_15.png)

diff --git a/docs/Cycle.md b/docs/Cycle.md index e69de29..5725e5c 100644 --- a/docs/Cycle.md +++ b/docs/Cycle.md @@ -0,0 +1,16 @@ +#

Модуль «Цикл»

+ +

Модуль «Цикл» применяется для неоднократного (цикличного) выполнения набора действий. Действия, добавленные в модуль, будут выполняться до тех пор, пока не пройдёт указанное в настройках количество итераций.

+ +## Интерфейс модуля +

Модуль состоит из полей «Примечание», «Количество итераций» и «Переменная». Действия, которые должны выполняться в цикле, добавляются в блок, расположенный в нижней части модуля. Действия добавляются в модуль перетаскиванием их из меню или другого места рабочей области. +

Модуль выглядит следующим образом: +

![Screenshot](img/cycle_1.png)

+

Поле «Примечание», как и во всех других модулях, служит для внесения комментария от разработчика робота. +

Остальные поля присущи только этому модулю. +

Поле «Количество итераций» предназначено для ввода числа, означающего, сколько раз необходимо выполнить действия, содержащиеся в модуле. +

Поле «Переменная» - переменная, в которой будет храниться число – текущий шаг цикла. Цикл начинается с единицы. +

Пример заполненного цикла: +

![Screenshot](img/cycle_2.png)

+

По кнопке «Свернуть» можно свернуть действия цикла для более компактного отображения команды. +

![Screenshot](img/cycle_3.png)

\ No newline at end of file diff --git a/docs/EndProcess.md b/docs/EndProcess.md index e69de29..ff64ba6 100644 --- a/docs/EndProcess.md +++ b/docs/EndProcess.md @@ -0,0 +1,8 @@ +#

Модуль «Завершить процесс»»

+ +

Модуль «Завершить процесс» предназначен для завершения ранее запущенных процессов по их имени и идентификатору.

+ +## Интерфейс модуля +

Окно состоит из двух полей – имени и идентификатора (id) завершаемого процесса. +

![Screenshot](img/EP_1.png)

+

Если завершаемый процесс запускался через модуль «Запустить процесс», то в эти поля передаются переменные, указанные в одноименных полях окна запуска процессов. В противном случае, если известно имя процесса, который необходимо завершить, достаточно ввести только его, но (!) в таком случае завершатся все процессы с подобным именем. Например, если вы захотите закрыть excel-файл и напишете просто «Excel», то закроются все excel-файлы, которые были открыты. \ No newline at end of file diff --git a/docs/FROCR.md b/docs/FROCR.md index e69de29..02ef254 100644 --- a/docs/FROCR.md +++ b/docs/FROCR.md @@ -0,0 +1,18 @@ +#

Модуль «Распознавание текста ABBYY»

+ +

Модуль «Распознавание текста ABBYY» работает, в основном, с PDF-файлами. В отличие от предыдущего модуля имеет более высокую точность и скорость работы.

+

Результат распознавания записывается в переменную-объект, в которой можно обратиться к конкретной строке, таблице, слову.

+ +##Интерфейс модуля +

Данный модуль состоит из двух полей – «Путь к PDF-файлу» и «Переменная». +

![Screenshot](img/FROCR_1.png)

+

Поле «Путь к PDF файлу». В поле указывается путь до распознаваемого файла/картинки. +

Поле «Переменная». В поле вводится имя переменной, начиная с символа «@», в которую будет занесен результат распознавания. +

PDF файл может состоять из нескольких страниц, поэтому переменная будет являться списком страниц. Например, @text[0] – первая распознанная страница файла. +

Весь распознанный текст делится на две части – основной текст и табличная часть. +## Основной текст +

Для обращения к тексту, необходимо обращаться к полю rows_word[0] (в данной записи [0] означает, что идет обращение к первой текстовой части, в других версиях ABBYY возможно использование большего разбиения текста). Затем указывается, как отдельное поле, номер строки и, через точку, номер слова в строке - @text[0].rows_word[0].2.4. Затем, после выбора нужного слова, можно получить его значение, обратившись к полю value - @text[0].rows_word[0].2.4.value – такая строка выдаст значение слова, находящегося на первой странице распознанного документа, во второй строке и является четвертой слева. +## Табличная часть +

Для обращения к таблице, необходимо обращаться к полю tables[0] ([0] нужен для корректной работы, его смысловая часть заложена в продукте ABBYY). Затем отдельным полем вводится номер таблицы, так как на странице их может быть несколько - @text[0].tables[0].0. После этого вводится номер ячейки в таблице в виде одного числа. Если вы хотите найти ячейку и знаете её номер колонки и строки, то можно получить индекс рассматриваемой ячейки переменной в виде «строка,колонка», обратившись к полю index - @text[0].tables[0].0.5.index (5 – пятая ячейка в массиве распознанных ячеек). Для получения значения из ячейки нужно обратиться к её значению, а затем либо собрать всю строку, записанную в ячейку, либо обратиться к конкретному слову по его порядковому номеру - @text[0].tables[0].0.5.value.1.value – значение второго слова из пятой ячейки первой таблицы с первой страницы распознанного текста. +

Для получения количества ячеек в таблице используйте следующую конструкцию - @text[0].tables[0].0[%], то есть указывайте набор символов «[%]» после того поля, после которого идет поле, количество элементов которого необходимо узнать. +

Для получения количества слов в ячейке используйте @text[0].tables[0].0.5[%]. diff --git a/docs/HTTPGET.md b/docs/HTTPGET.md index e69de29..565062b 100644 --- a/docs/HTTPGET.md +++ b/docs/HTTPGET.md @@ -0,0 +1,12 @@ +#

Модуль «HTTP_GET»

+ +

Http-запросы – запросы для передачи информации между сайтами (или серверами) и клиентами (например, нами).

+

Модуль «HTTP_GET» предназначен для отправки Get-запросов по протоколу http.

+

Для работы с полученными ответами можно использовать модуль «Парсинг JSON» (если, конечно, запрашиваемый формат данных был таковым).

+ +## Интерфейс модуля +

Данный модуль состоит из полей: «Ссылка», «Логин», «Пароль» и «Переменная». +

![Screenshot](img/hg_1.png)

+

Поле «Ссылка». В поле вводится необходимый URL-адрес. +

Поле «Переменная». В поле вводится название переменной, в которую будет помещен ответ. +

Поля «Логин» и Пароль». Предназначены для ввода логина и пароля, так как некоторые сайты используют защиту своей информации и запрашивают авторизацию. diff --git a/docs/HTTPPOST.md b/docs/HTTPPOST.md index e69de29..286c202 100644 --- a/docs/HTTPPOST.md +++ b/docs/HTTPPOST.md @@ -0,0 +1,11 @@ +#

Модуль «HTTP_POST»

+ +

Модуль «HTTP_POST» предназначен для отправки Post-запросов по протоколу http.

+ +## Интерфейс модуля +

Форма для отправки Post-запроса аналогична форме для отправки Get-запроса, с одним лишь отличием - присутствует поле для ввода самого запроса. +

![Screenshot](img/hp_1.png)

+

Поле «Ссылка». В поле вводится необходимый URL-адрес. +

Поле «Переменная». В поле вводится название переменной, в которую будет помещен ответ. +

Поля «Логин» и Пароль». Предназначены для ввода логина и пароля, так как некоторые сайты используют защиту своей информации и запрашивают авторизацию. +

Поле «Запрос». В поле вводится HTTP-сообщение, согласно общим правилам его структуры. diff --git a/docs/Iterface.md b/docs/Iterface.md index e69de29..babfc0f 100644 --- a/docs/Iterface.md +++ b/docs/Iterface.md @@ -0,0 +1,87 @@ +#

Модуль «Интерфейс»

+ +

Данный модуль предназначен для создания диалоговых окон для общения с пользователем робота. Это могут быть окна, позволяющие прикрепить файл, ввести какие-либо данные – дату, имена, почтовые адреса и другое, с чем впоследствии будет работать робот, или наоборот, окна, отображающие результат работы.

+

Создание окна заключается в добавлении на него контролов – элементов интерфейса таких, как надписи, текстовые поля, кнопки, выпадающие списки.

+ +## Основное окно +

Окно модуля состоит из нескольких частей: +

• Добавить элемент - настройка добавляемого элемента; +

• Общие настройки – общие настройки диалогового окна; +

• Список элементов – таблица, в которой содержатся все добавленные элементы; +

• Окно с предварительным просмотром диалогового окна на текущий момент (правая часть окна). +

![Screenshot](img/interface_1.png)

+

Начинать работу с диалоговым окном следует с общих настроек, а именно с настройки сетки, которую можно открыть по кнопке «Настройка сетки».  +## Общие настройки +

К общим настройкам относится название окна – «Титул», его ширина и высота и настройка сетки. При установке флажка «На весь экран» поля «Высота» и «Ширина» не будут учитываться. +

По нажатию на кнопку «Настройка сетки» появится окно настроек строк и колонок сетки. +

![Screenshot](img/interface_2.png)

+

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

• Первый способ +

В две строки, 4 элемента интерфейса – на первой строке подпись и поле для ввода начальной даты, на второй строке подпись и поле для ввода конечной даты +

![Screenshot](img/interface_3.png)

+

Для такой настройки сетки необходимо задать две колонки – первая, для надписей, вторая для полей ввода, и две строки – первая для начальной даты, вторая - для конечной. +

• Второй способ +

В одну строку, 3 элемента интерфейса – подпись, поле для ввода первой даты, поле для ввода второй даты. +

![Screenshot](img/interface_4.png)

+

В таком случае используется три колонки и одна строка. +

• Третий способ +

В одну строку, 4 элемента интерфейса – два поля для ввода и подписи к каждому из них. +

![Screenshot](img/interface_5.png)

+

Здесь используются 4 колонки и 1 строка. +

Для каждой колонки можно задать свою ширину, для каждой строки – высоту: +

![Screenshot](img/interface_6.png)

+

Высота и ширина вводятся в пикселях, но можно использовать относительные размеры окна, например, если одна колонка должна быть больше другой в два раза и их всего две, то в поле «Ширина» можно ввести «1*» для первой колонки, и «2*» для второй: +

![Screenshot](img/interface_7.png)

+

Результат такой разметки: +

![Screenshot](img/interface_8.png)

+

Нумерация строк и колонок начинается с 0. С помощью кнопки «Удалить» можно удалить ненужную строку или колонку, по кнопке «Редактировать» можно изменить высоту или ширину. +

После настройки сетки она будет отображена пунктирной линией в окне предварительного просмотра в правой части окна, и затем можно приступить к добавлению контролов. +## Добавление элемента интерфейса +

Для добавления на окно нового элемента необходимо заполнить поля, представленные на рисунке: +

![Screenshot](img/interface_9.png)

+

Обязательными полями являются все, кроме полей «Объединить колонки/строки». +## Поле «Тип» +

![Screenshot](img/interface_10.png)

+

Сначала выбирается тип добавляемого элемента интерфейса из предложенных: +

• Поле для ввода – поле, в которое можно ввести любую строку; +

![Screenshot](img/interface_11.png)

+

• Надпись – статичная строка текста, которая не может быть отредактирована пользователем; +

![Screenshot](img/interface_12.png)

+

• Выпадающий список – поле со стрелочкой сбоку, по нажатию которого открывается список заранее определенных значений; +

![Screenshot](img/interface_13.png)

+

• Таблица – отображение в виде таблицы заранее созданной переменной. Возможно редактирование полей таблицы, но невозможно создание новых колонок в ней; +

![Screenshot](img/interface_14.png)

+

• Выбор даты – поле с иконкой календаря, по нажатию на которую пользователю будет предложено выбрать определенную дату. Возможен ввод значения даты вручную, при вводе других строк поле автоматически подберет наиболее подходящую дату к введенным данным. Формат даты ДД.ММ.ГГГГ; +

![Screenshot](img/interface_15.png)

+

• Выбор файла – поле с иконкой в виде трех точек, по нажатию на которую пользователю будет предложено выбрать файл. Путь до выбранного файла запишется в это поле; +

![Screenshot](img/interface_16.png)

+

• Выбор папки – поле с иконкой в виде трех точек, по нажатию на которую пользователю будет предложено выбрать папку. Путь до выбранной папки запишется в это поле. Выглядит так же, как и «Выбор файла». +## Поле «Источник данных» +

В это поле вводится название переменной или строка, на основе которой контрол будет заполнен. Немного поподробнее о поле при выборе различных элементов интерфейса: +

• Для типа элемента «Надпись» туда вводится значение, которое должно быть отображено в выводимой надписи; +

• Для «Поле для ввода», «Выбор даты», «Выбор файла» и «Выбор файла» вводится значение, которое сразу будет указано в поле, если это необходимо. Если поле должно быть пустым, то не надо заполнять «Источник данных»; +

• Для «Таблицы» необходимо подать заполненную табличную переменную для её отображения; +

• Для элемента интерфейса «Выпадающий список» необходимо передать набор значений, которые пользователю будет предложено выбрать. Делается это через символ «;». Это могут быть строки, переменные-элементы, переменные-списки или табличные переменные, состоящие из одного столбца. Например, введено следующее значение, при приведенных далее примерах заполнения переменных: +

![Screenshot](img/interface_17.png)

+

![Screenshot](img/interface_18.png)

+

![Screenshot](img/interface_19.png)

+

Результат будет выглядеть следующим образом: +

![Screenshot](img/interface_20.png)

+## Поля «Колонка» и «Строка» +

В эти поля необходимо ввести номер колонки и строки сетки (таблицы), в которых должен располагаться добавляемый контрол. Например, в примере с датами (рис. 8.22.2) контрол «Надпись» - «Начальная дата» располагается в 0 колонке и 0 строке, а надпись «Конечная дата» - в 0 колонке и 1 строке. +

Поля «Объединить колонки» и «Объединить строки» +

В некоторых случаях необходимо выводить поля не в конкретной клеточке сетки, а в объединении нескольких клеток. Например – нужно предложить пользователю выбрать Excel-файл для записи в него результатов и ввести начальную и конечную дату, по которым будут собираться некоторые данные. Хотелось бы объединить это в две строки, но для ввода даты нужно как минимум 2 поля, а поле для выбора файла – одно. +

![Screenshot](img/interface_21.png)

+

Для того, чтобы растянуть поле для выбора файла по длине полей для ввода даты, нам необходимо разместить его не просто в 1 колонке и 0 строке, но и объединить для него две колонки, чтобы оно занимало сразу обе: +

![Screenshot](img/interface_22.png)

+

![Screenshot](img/interface_23.png)

+

То есть при заполнении поля «Объединить колонки» колонки, начиная с той, что указана в поле «Колонка», будут объединены по горизонтали в одну. +

Аналогично с полем «Объединять строки» - указанное количество строк, начиная с той, что указана в поле «Строка», будут объединены в одну: +

![Screenshot](img/interface_24.png)

+## Поле «Переменная» +

В это поле вводится название переменной, в которую будет записано значение, введенное (для выпадающего списка – выбранное) пользователем. Является обязательным полем для всех типов контролов, кроме «Надписи». +

После заполнения всех полей необходимо нажать на кнопку «Добавить». После нажатия на нее элемент сразу отобразиться в окне предпросмотра в правой части окна. +

![Screenshot](img/interface_25.png)

+

По кнопке «Предпросмотр» откроется диалоговое окно в таком виде, в котором оно будет представлено пользователю. +

Удалить или отредактировать элемент можно, предварительно выбрав его в области «Список элементов», а затем нажав на соответствующую кнопку, находящуюся над списком с элементами. +

После добавления всех необходимых контролов нужно нажать кнопку «Сохранить» в правой нижней части окна. diff --git a/docs/JSON.md b/docs/JSON.md index e69de29..9c800d7 100644 --- a/docs/JSON.md +++ b/docs/JSON.md @@ -0,0 +1,15 @@ +#

Модуль «Парсинг JSON»

+ +

Данный модуль предназначен для обработки данных в формате JSON – парсинга JSON-объектов.

+ +## Интерфейс модуля +

В окне модуля расположены поля для ввода значений: «Переменная» и «JSON», и кнопки «Сохранить» и «Отмена». +

![Screenshot](img/js_1.png)

+

Поле «Переменная». В поле «Переменная» вводится название переменной, которая будет преобразована в объектную переменную с полями, имеющимися в JSON-объекте. +

Поле «JSON». В поле необходимо описать объект в формате JSON, в виде пар «ключ»: «значение», обрамлённых в фигурные скобки. JSON-объект может быть описан непосредственно текстом в поле «JSON» либо быть созданным в процессе выполнения других модулей. В случае формирования JSON-объекта в других модулях, в поле необходимо ввести название переменной, в которой лежит необходимый объект. +## ПРИМЕР +

Пусть у нас есть текст в формате JSON. Введем его в поле JSON модуля, а результат пусть запишется в переменную @a. +

![Screenshot](img/js_2.png)

+

В результате переменная @a станет объектом с полями «name» и «age». К полям объекта можно обратиться, написав название поля через точку после переменной. Проверить значение переменной можно с помощью функционала «Узнать значение переменной», доступного по кнопке в обозревателе решений. +

![Screenshot](img/js_3.png)

+

Видно, что на основе текста формата JSON создалась переменная с указанными в нем полями и заполненными значениями. \ No newline at end of file diff --git a/docs/OCR.md b/docs/OCR.md index e69de29..68e2a7a 100644 --- a/docs/OCR.md +++ b/docs/OCR.md @@ -0,0 +1,16 @@ +#

Модуль «Распознавание текста»

+ +

Модуль «Распознавание текста» предназначен для считывания текста с указанного изображения и представления полученного текста в формате XML.

+ +## Интерфейс модуля +

Модуль состоит из двух полей – «Путь к файлу» и «Переменная», и флажка «Скриншот». +

![Screenshot](img/OCR_1.png)

+

Поле «Путь к файлу». Заполняется путем до файла, который необходимо распознать. Это может быть картинка или PDF-документ. +

Поле «Переменная». Заполняется названием переменной, начиная с символа «@», в которую будет помещен результат распознавания. +

Флажок «Скриншот». Флажок ставится, когда необходимо распознать скриншот экрана в момент работы данного модуля в процессе выполнения робота. В таком случае поле «Путь к файлу» указывать не нужно. +## ПРИМЕР +

Пусть имеется следующее изображение формата jpeg. Подадим его в модуль распознавания текста. +

![Screenshot](img/OCR_2.png)

+

Результат, записанный в переменную при распознавании изображения: +

![Screenshot](img/OCR_3.png)

+

Результат содержит информацию о страницах, координате и значении каждого слова изображения. diff --git a/docs/Pause.md b/docs/Pause.md index e69de29..dd49001 100644 --- a/docs/Pause.md +++ b/docs/Pause.md @@ -0,0 +1,7 @@ +#

Модуль «Пауза»

+ +

Модуль «Пауза» предназначен для создания некоторой паузы между модулями.

+

Вся настройка модуля заключается в заполнении поля «Пауза» - количество секунд, которые необходимо подождать. Допускается использование переменной.

+ +## +

![Screenshot](img/pause_1.png)

diff --git a/docs/Proxy.md b/docs/Proxy.md index e69de29..ae115f9 100644 --- a/docs/Proxy.md +++ b/docs/Proxy.md @@ -0,0 +1,6 @@ +#

Модуль «Прокси»

+ +

Модуль «Прокси» предназначен для создания подключения к прокси-серверу. Для использования модуля необходимо заполнить адрес прокси-сервера.

+ +## +

![Screenshot](img/proxy_1.png)

\ No newline at end of file diff --git a/docs/ReadEmail.md b/docs/ReadEmail.md index e69de29..9c865d3 100644 --- a/docs/ReadEmail.md +++ b/docs/ReadEmail.md @@ -0,0 +1,35 @@ +#

Модуль «Считать письма»

+ +

Модуль «Считать письма» предназначен для получения списка писем с почты для дальнейшей их обработки или просто для скачивания вложений.

+ +## Интерфейс модуля +

Модуль состоит из двух вкладок: «Настройки» и «Настройки чтения». +

Вкладка «Настройки» аналогична одноименной вкладке в модуле «Отправить письмо», с одним лишь отличием - в данном модуле предоставляется выбор протокола отправки: IMAP или POP3. При выборе соответствующего протокола и его настроек, поля «Хост», «Порт» и «Использовать SSL» заполняются автоматически (кроме режима «Пользовательские настройки»). +

![Screenshot](img/RE_1.png)

+

![Screenshot](img/RE_2.png)

+### Вкладка «Настройки чтения» +

Вкладка «Настройки чтения» представляет собой набор полей, которые заполняются в зависимости от того, какие письма следует считать. +

![Screenshot](img/RE_3.png)

+

Поле «Переменная». В поле ожидается ввод названия переменной, в которую будет внесена информация о считанных письмах. В программе это поле будет представлено списком объектов, имеющих четыре поля: +

1) Subject – тема письма; +

2) Body – тело письма, его основной текст; +

3) Sender – отправитель; +

4) Attachments – список путей до скачанных вложений. +

Примеры работы с переменными +

• @mail[1].Attachments[0] – получение пути первого вложения второго считанного письма: +

![Screenshot](img/RE_4.png)

+

• @mail[0].Subject – получение темы первого скачанного сообщения: +

![Screenshot](img/RE_5.png)

+

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

Флажок «Только непрочитанные» позволяет настроить считывание только новых писем. Доступно только для протокола IMAP. +

Флажок «Отмечать как прочитанные» позволяет после считывания устанавливать пометку о прочтении письма. Доступно только для протокола IMAP. +

Поле «Читать из папки» предназначено для настройки конкретной папки в почтовом ящике, из которой следует считывать письма. По умолчанию, письма считываются из папки «Входящие». Доступно только для протокола IMAP. +

Поле «Фильтр по теме сообщений» предназначено для настройки фильтра по теме сообщений. Если необходимо скачать письма с темой, содержащей или не содержащей определенную строку, то следует выбрать одноименную операцию в выпадающем списке и вписать нужную строку в появившемся поле: +

![Screenshot](img/RE_6.png)

+

Поле «Фильтр по дате» предназначено для настройки фильтрации считывания писем по дате. При указании значения в данном поле, робот будет считывать только те сообщения, которые удовлетворяют заданному условию. +

Доступны следующие методы фильтрации: +

• за определенную дату – «На дату»; +

• начиная с какой-либо даты, включая её – «С даты»; +

• все письма, до какой-либо даты, включая её – «До даты»; +

• «Между датами». +

После выбора метода фильтрации под полем «Фильтр по дате» появится одно или два поля для внесения в них нужных значений в формате ДД.ММ.ГГГГ. diff --git a/docs/Return.md b/docs/Return.md index e69de29..3cd9878 100644 --- a/docs/Return.md +++ b/docs/Return.md @@ -0,0 +1,11 @@ +#

Модуль «Return»

+ +

Бывают ситуации, когда при некотором условии необходимо завершить работу робота, например, нужно обработать письмо, которое должно прийти на почту, а оно не пришло. Для таких целей существует модуль «Return».

+ +## +

![Screenshot](img/return_1.png)

+

Данный модуль заканчивает работу всего робота и не требует настройки. Может использоваться в любом месте. +## Пример +

На рисунке ниже представлен пример использования модуля: пусть с помощью модуля «Считать письма» считываются все письма за определенный промежуток времени. Все темы письма и их содержания необходимо внести в Excel-файл. Но что, если этих писем нет? Для этого проверяем наличие писем, и, если их нет, робот прекратит работу, иначе – продолжит. +

![Screenshot](img/return_2.png)

+

Благодаря этому модулю можно писать робота в общей рабочей области, а не в ветках модуля «Условие». Так робот выглядит более аккуратным и наглядным. \ No newline at end of file diff --git a/docs/SQL.md b/docs/SQL.md index e69de29..dd50297 100644 --- a/docs/SQL.md +++ b/docs/SQL.md @@ -0,0 +1,11 @@ +#

Модуль «SQL»

+ +

Модуль «SQL» обеспечивает работу с базами данных. Поддерживаемые СУБД: MS SQL и PostgreSQL.

+ +## Интерфейс модуля +

Данный модуль обеспечивает работу с базами данных. Поддерживаются такие СУБД, как MS SQL и PostgreSQL. Для работы с БД необходимо заполнить все поля окна «Модуль SQL». +

Окно состоит из следующих полей: «СУБД», «Источник данных», «База данных», «Логин», «Пароль», «SQL-скрипт» и «Переменная». +

![Screenshot](img/sql_1.png)

+

Поля «СУБД», «Источник данных», «База данных», «Логин» и «Пароль» обеспечивают подключение к БД. +

Поле «SQL-скрипт». В данное поле вводится скрипт на языке SQL, поддерживается ввод переменных студии. +

Поле «Переменная». В поле вводится название переменной, в которую будет записан ответ от базы данных в виде таблицы. В одном SQL-модуле может возвращаться только одна таблица, последующие будут проигнорированы. diff --git a/docs/SendEmail.md b/docs/SendEmail.md index e69de29..64acb72 100644 --- a/docs/SendEmail.md +++ b/docs/SendEmail.md @@ -0,0 +1,32 @@ +#

Модуль «Отправить письмо»

+ +

Модуль «Отправить письмо» предназначен для отправки письма одному или нескольким получателям.

+ +## Интерфейс модуля +

Окно модуля состоит из нескольких вкладок: «Настройки», «Получатель», «Письмо». Рассмотрим по порядку все вкладки. Начнем знакомство с рассмотрения вкладки «Настройки». +### Вкладка «Настройки» +

![Screenshot](img/SE_1.png)

+

Поле «Настройки» – выпадающий список, в котором предложены несколько почтовых служб. При выборе почтовой службы будут заполнены поля «Хост», «Порт» и установлен флажок «Использовать SSL» согласно её настройкам. Пункт "Пользовательские" предоставляет возможность самостоятельной настройки параметров доступа к почтовой службе +

![Screenshot](img/SE_2.png)

+

Поля «Хост», «Порт» и флажок «Использовать SSL» необходимы к заполнению только при выборе пользовательских настроек. Представляют собой набор обязательных полей для подключения к почтовым сервисам. +

Поле «E-mail» предназначено для указания адреса электронной почты, с которой будут отправлены сообщения, в формате name@mail.ru. +

Поле «Пароль» предназначено для ввода пароля от почты, указанной в поле «E-mail». +

![Screenshot](img/SE_3.png)

+### Вкладка «Получатель» +

На данной вкладке заполняется информация о лицах, которым будет отправлено письмо. +

Модуль предоставляет различные способы указания получателей, а именно: +

• ручной ввод списка получателей (имена и e-mail’ы); +

• из переменной-элемента, в виде одного e-mail’а; +

• из переменной-списка, в виде нескольких e-mail’ов. +

![Screenshot](img/SE_4.png)

+

Если выбран переключатель «Список», то поле «Переменная» недоступно для ввода, иначе – наоборот, доступно поле «Переменная», но недоступны другие поля. +

Для ввода получателей методом «Список» необходимо заполнить поля «Имя получателя» и «E-mail получателя», затем нажать на кнопку под полями «Добавить». После этого введенные значения появятся в таблице в центре окна. Если необходимо удалить какого-либо получателя из таблицы, необходимо выбрать строку с ним и нажать на кнопку «Удалить». +

![Screenshot](img/SE_5.png)

+

Если используется метод выбора получателей через переменную, то поля «Имя получателя», «E-mail получателя» и таблица становятся недоступными. В поле «Переменная» необходимо ввести название переменной, начиная с символа «@», из которой будут взяты email’ы получателей. +

![Screenshot](img/SE_6.png)

+### Вкладка «Письмо» +

На данной вкладке настраивается письмо, которое будет отправлено получателям, указанным на вкладке «Получатель». Все поля необязательны для заполнения, если не заполнить ни одного из них будет отправлено пустое письмо с темой «<Без темы>». +

![Screenshot](img/SE_7.png)

+

Для прикрепления одного файла во вложение следует нажать на кнопку «Выбрать файл» и в открывшемся диалоговом окне выбрать требуемый файл. +

Для прикрепления сразу нескольких файлов необходимо нажать на кнопку «Выбрать папку» и в открывшемся диалоговом окне выбрать папку со всеми требуемыми файлами. +

Каждое из полей формы может быть заполнено переменной. diff --git a/docs/StartProcess.md b/docs/StartProcess.md index e69de29..dca8447 100644 --- a/docs/StartProcess.md +++ b/docs/StartProcess.md @@ -0,0 +1,13 @@ +#

Модуль «Запустить процесс»

+ +

Модуль «Запустить процесс» предназначен для запуска каких-либо приложений. Это может быть браузер, MS Word, 1С и другие.

+ +## Интерфейс модуля +

Окно модуля состоит из полей «Путь к файлу», «Параметры», флажок «От имени администратора», «Пауза», «Переменная с именем процесса» и «Переменная с id процесса», а также кнопок «Сохранить» и «Отмена». +

![Screenshot](img/SP_1.png)

+

Поле «Путь к файлу». В данное поле вводится название стандартного процесса Windows (например, notepad – блокнот), либо путь до корневого расположения программы, например, стандартный путь до браузера Google Chrome - C:\Program Files (x86)\Google\Chrome\Application\chrome.exe. +

Поле «Параметры» является необязательным полем, в него вводятся аргументы вызываемого приложения. Например, для открытия нового блокнота или чистого листа Excel-аргументы не нужны, но если необходимо открыть конкретный файл, то в аргументы передается название файла, а если открывается браузер, то аргументом может быть ссылка на сайт. +

![Screenshot](img/SP_2.png)

+

Флажок «От имени администратора» запускает процесс с правами, позволяющими запускаемому процессу вносить изменения в системные файлы компьютера. Если вы не доверяете приложению, то не стоит ставить этот флажок. +

Поле «Пауза» устанавливает время ожидания после начала запуска процесса. +

Поле «Переменная с именем/id процесса». В данное поле вводятся переменные, в которые будут помещены имя и идентификатор (id) запускаемого процесса соответственно. Данные параметры нужны, чтобы в дальнейшем можно было завершить (закрыть) указанные процессы. Если у вас задача только запустить процессы, то можете оставить эти поля пустыми. diff --git a/docs/TextAnalysis.md b/docs/TextAnalysis.md index e69de29..37299c9 100644 --- a/docs/TextAnalysis.md +++ b/docs/TextAnalysis.md @@ -0,0 +1,13 @@ +#

Модуль «Обработка текста»

+ +

Модуль «Обработка текста» предлагает несколько методов сравнения текста. В некоторых задачах требуется знание о том, как сильно различен текст между эталонным и указанным. Это задачи, относящиеся к компьютерной лингвистике и искусственному интеллекту.

+ +## Интерфейс модуля +

Окно модуля состоит из части составления команды, кнопок управления командами и списком команд в виде таблицы. Часть составления команды состоит из следующих полей: выпадающий список «Действие» с доступным набором методов анализа текста, два поля «Строка 1» и «Строка 2», предназначенные для ввода двух строк текста или переменных, содержащих текст, и поле «Переменная результат» - для названия переменной, в которую будет помещен результат работы модуля. +

![Screenshot](img/TA_1.png)

+

По кнопке «Добавить» созданная команда поместится в таблицу «Список команд». Для редактирования команды из списка нужно выбрать её в таблице, изменить необходимые поля и нажать на кнопку «Редактировать». Для удаления команды нужно выбрать ее в списке и нажать на кнопку «Удалить». С помощью стрелочек в углу таблицы можно менять команды местами, аналогично тому, как это происходит в модуле Excel (Часть II). +

Методы анализа текста +

В модуле предложены следующие методы анализа текста: +

1. Расстрояние Левенштейна – рассчитывает разницу между двумя строками. Например – «Lexema RPA» и «Lexema SR» отличаются на 3 символа – слова «Lexema» совпадают полностью, остальные символы различны, то есть результат, записанный в переменную, будет равен 3; +

2. 3-граммы – метод, основанный на работе с n-граммами, в нашем случае n=3 – оценивается схожесть каждых 3 символов. Чем больше число (до 1), тем большую схожесть имеют строки. В примере «Lexema RPA» и «Lexema SR» результатом будет число 0,52. +

3. Сходство Джаро-Винклера – мера схожести строк для измерения расстояния между двумя последовательностями символов. Чем меньше расстояние Джаро-Винклера для двух строк, тем больше сходства имеют эти строки друг с другом. Для примера «Lexema RPA» и «Lexema SR» результатом будет число 0,5. diff --git a/docs/WHILE.md b/docs/WHILE.md index e69de29..02cc8a0 100644 --- a/docs/WHILE.md +++ b/docs/WHILE.md @@ -0,0 +1,12 @@ +#

Модуль «WHILE»

+ +

Модуль «While» (цикл с условием) выполняет добавленные в него действия до тех пор, пока указанное условие возвращает значение «True».

+ +## Интерфейс модуля +

В окне модуля расположены поля «Примечание» и «Условие». В блоке, расположенном в нижней части модуля, следует располагать действия, которые требуется выполнять в цикле. +

![Screenshot](img/while_1.png)

+

Поле «Условие». В поле вводится условие, как и в модуле «Условие», которое необходимо писать в соответствии с синтаксисом языка C#, поэтому здесь присутствует кнопка, открывающая «Конструктор условий» (см. Модуль "Условие"). +

Добавление действий в модуль происходит с помощью перетаскивания из меню модулей или из рабочей области проекта. +

![Screenshot](img/while_2.png)

+

При нажатии на кнопку «Свернуть» действия, описанные в цикле, сворачиваются для более компактного отображения команды. +

![Screenshot](img/while_3.png)

\ No newline at end of file diff --git a/docs/WorkBrowser.md b/docs/WorkBrowser.md index e69de29..022e708 100644 --- a/docs/WorkBrowser.md +++ b/docs/WorkBrowser.md @@ -0,0 +1,84 @@ +#

Модуль «РАБОТА С БРАУЗЕРОМ»

+ +

Модуль «Работа с браузером» построен на базе Selenium WebDriver и позволяет реализовывать основные методы работы со страницей браузера – открыть вкладку, перейти на вкладку, найти элемент на странице по её ключу и как-то его обработать.

+ +## Интерфейс модуля +

Окно модуля делится на область создания команды для работы с браузером, группу кнопок управления действиями и таблицу, содержащую список созданных команд. Область создания команды состоит из нескольких полей для заполнения, причем, количество этих полей меняется в зависимости от выбранного действия в поле «Действие». Группа кнопок состоит из трех кнопок – «Добавить», «Редактировать» и «Удалить». +

![Screenshot](img/WB_1.png)

+

Создание команды начинается с выбора действия. После его выбора список доступных полей в окне может измениться. Необходимо заполнить поля, требующиеся для выбранного действия и нажать на кнопку «Добавить». Созданное действие отобразится в таблице «Список команд». Для редактирования команды следует выбрать её в списке команд, изменить необходимые поля и нажать «Редактировать». Если при этом нажать на кнопку «Добавить», то будет добавлено новое действие, похожее на то, что было выбрано в списке команд, но с внесенными изменениями. Можно ничего не менять и нажать на кнопку «Добавить», тогда получится полное копирование команды. +

Для удаления ненужных команд необходимо выбрать команду в таблице и нажать «Удалить». +

Робот будет выполнять все указанные команды последовательно, поэтому для изменения порядка команд в таблице можно воспользоваться стрелочками в правом верхнем углу таблицы. Делается это следующим образом – выбирается строка, положение которой необходимо изменить, а затем нажимаются стрелочки вверх или вниз, в зависимости от того, где эта строка должна находиться. +

![Screenshot](img/WB_2.png)

+

Для всех действий три первых поля остаются неизменными, это «Драйвер», «Действие» и «Примечание». +

Поле «Драйвер» на данный момент недоступно для редактирования и в нем по умолчанию выбран драйвер для браузера Chrome, но в обозримом будущем этот список планируется дополнять другими браузерами. +

Поле «Действие» — это выпадающий список с перечнем возможных действий этого модуля. Подробнее о них будет рассказываться в следующей главе. +

Поле «Примечание» — строка с примечанием к команде. +## Перечень и описание действий +

Модуль предлагает использование 7 основных действий – перейти на страницу, перезагрузить страницу, перейти назад или вперед, работа со страницей, работа со вкладками и закрыть браузер. Каждое действие требует заполнения определенных полей. +

Обратите внимание, что закрытие браузера, открытого с помощью модуля «Работа с браузером», следует осуществлять средствами самого модуля, а не самостоятельно, иначе, если вы закроете браузер сами, а затем попытаетесь продолжить работу с ним с помощью этого модуля, то при каждой попытке запуска робота будет возникать ошибка и придется перезапускать программу. +### Действие «Перейти» +

С помощью действия «Перейти» происходит переход на заданную страницу. В области создания команды появляется поле – «URL». +

![Screenshot](img/WB_3.png)

+

Если уже открыта какая-либо страница, то браузер перейдет от неё к странице, указанной в поле «URL», то есть исходная страница будет заменена новой. Если браузер еще не был запущен, то он будет открыт с этой страницы. +### Действие «Перезагрузить страницу» +

Действие позволяет перезагружать уже открытую страницу. Перед использованием данного действия, убедитесь, что в браузере есть открытая страница. +

Действие не имеет никаких дополнительных для настройки полей. +### Действие «Назад» +

Действие позволяет выполнять переход к странице, которая была открыта в браузере до текущей. +### Действие «Вперед» +

Действие позволяет выполнять переход к странице, которая была открыта в браузере после текущей, если таковая была. +### Действие «Работа со страницей» +

Данное действие предоставляет возможность работать с отдельным элементом страницы. Для настройки действия появляются следующие поля: «Тип поиска элемента», «Строка поиска», «Действие на странице», «Переменная», «Ожидание» и «Номер элемента». +

![Screenshot](img/WB_4.png)

+

Поле «Тип поиска элемента» представляет собой выпадающий список с перечнем методов поиска элемента на странице, используется в паре с полем «Строка поиска». +

Ниже будут перечислены все типы поиска элемента с примерами заполнения поля «Строка поиска»: +

• GetElementsByName – поиск элементов по их свойству name. +

![Screenshot](img/WB_5.png)

+

«Строка поиска» для нахождения элемента div-element. +

• GetElementsById – поиск элементов по их свойству id. +

![Screenshot](img/WB_6.png)

+

«Строка поиска» для нахождения элемента div-element. +

• GetElementsByClass – поиск элементов по их свойству class. +

![Screenshot](img/WB_7.png)

+

«Строка поиска» для нахождения элемента div-myClass. +

• GetElementsByCssSelector – поиск элементов по их CSS селектору. +

![Screenshot](img/WB_8.png)

+

«Строка поиска» для нахождения элемента div-div.main. +

• GetElementByLinkText – поиск элементов-ссылок по их тексту. Ищутся только элементы с полным совпадением. +

![Screenshot](img/WB_9.png)

+

«Строка поиска» нахождения первого элемента a на примере – text. +

• GetElementsByPartialLinkText - поиск элементов-ссылок по их тексту. Ищутся все элементы, содержащие заданную строку. +

![Screenshot](img/WB_10.png)

+

«Строка поиска» нахождения двух элементов a – text +

• GetElementsByTagName – поиск элементов по их тегу . +

![Screenshot](img/WB_11.png)

+

«Строка поиска» нахождения элемента a – a. +

• GetElementsByXPath – поиск элементов по языку запросов HTML – xpath. +

![Screenshot](img/WB_12.png)

+

«Строка поиска» для нахождения элемента div - //div[@class='main']. +

Поле «Действие на странице» предлагает выбор действия из выпадающего списка, которое необходимо произвести над найденными элементами. Доступны следующие действия: +

• Записать – вводит заданный в поле «Переменная» текст (например, после нажатия на определенный элемент для ввода текста); +

• Получить text – получает значение свойства «text» всех найденных или только выбранного элемента и возвращает результат в виде списка в переменную; +

• Отправить – нажатие клавиши «ВВОД» («ENTER») – применение записанных данных (например, в строке поиска можно ввести какой-либо текст действием «Записать», а затем «Отправить» его); +

• Нажать – нажатие левой кнопкой мыши на заданный элемент (обязательно заполнение поля «Номер элемента»); +

• Навести мышь – наведение мыши на конкретно заданный элемент (обязательно заполнение поля «Номер элемента»); +

• Получить Property – при выборе действия появляется поле «Название Property» - возвращает значение указанного в поле «Название Property» свойства всех найденных элементов или конкретно заданного. Результатом будет являться список; +

• Получить CSS свойство – при выборе действия появляется поле «Свойство CSS» - возвращает значение указанного в поле «Свойство CSS» свойства всех найденных элементов или конкретно заданного. Результатом будет являться список; +

• Получить Attribute – при выборе действия появляется поле «Свойство Attribute» - возвращает значение указанного в поле «Свойство Attribute» свойства всех найденных элементов или конкретно заданного. Результатом будет являться список; +

В поле «Переменная» вводится название переменной, начиная с символа «@», в которую будет помещен результат выполнения команды или, наоборот, из которой будут браться значения для её выполнения. +

Поле «Ожидание (сек)». В поле вводится количество секунд, которые необходимо подождать после выполнения команды. +

Поле «Номер элемента» предназначено для указания индекса найденного элемента, к которому необходимо применить действие. +

Пример заполненного действия: +

![Screenshot](img/WB_13.png)

+

На рисунке представлен пример действия, настроенного для поиска элемента, имя которого равно «q». После того как элемент найден, в него будет вставлен текст «поиск». +### Действие «Работа с вкладками» +

Данное действие позволяет манипулировать вкладками в окне браузера. Для настройки действия добавляется как минимум одно поле – «Действие», остальные появляются в зависимости от выбранного в нем действия. +

![Screenshot](img/WB_14.png)

+

Доступные действия для работы с вкладками: +

• Добавить вкладку – создаст новую вкладку и та станет активной; +

• Закрыть вкладку – закроет активную вкладку; +

• Перейти на вкладку – при выборе действия появляется поле «Номер вкладки» - переходит на вкладку, номер которой указан в поле «Номер вкладки» (начиная с 0); +

• Получить количество вкладок – при выборе действия появляется поле «Переменная» - возвращает в указанную переменную количество вкладок в браузере. +### Действие «Закрыть браузер» +

Закрывает браузер, открытый с помощью модуля, не требует дополнительных настроек. + diff --git a/docs/img/CCode_1.png b/docs/img/CCode_1.png new file mode 100644 index 0000000..32e7511 Binary files /dev/null and b/docs/img/CCode_1.png differ diff --git a/docs/img/CCode_2.png b/docs/img/CCode_2.png new file mode 100644 index 0000000..32c4f26 Binary files /dev/null and b/docs/img/CCode_2.png differ diff --git a/docs/img/EP_1.png b/docs/img/EP_1.png new file mode 100644 index 0000000..378bd7e Binary files /dev/null and b/docs/img/EP_1.png differ diff --git a/docs/img/FROCR_1.png b/docs/img/FROCR_1.png new file mode 100644 index 0000000..b27d1a4 Binary files /dev/null and b/docs/img/FROCR_1.png differ diff --git a/docs/img/OCR_1.png b/docs/img/OCR_1.png new file mode 100644 index 0000000..ef13324 Binary files /dev/null and b/docs/img/OCR_1.png differ diff --git a/docs/img/OCR_2.png b/docs/img/OCR_2.png new file mode 100644 index 0000000..577c970 Binary files /dev/null and b/docs/img/OCR_2.png differ diff --git a/docs/img/OCR_3.png b/docs/img/OCR_3.png new file mode 100644 index 0000000..856fbf9 Binary files /dev/null and b/docs/img/OCR_3.png differ diff --git a/docs/img/RE_1.png b/docs/img/RE_1.png new file mode 100644 index 0000000..18d66a1 Binary files /dev/null and b/docs/img/RE_1.png differ diff --git a/docs/img/RE_2.png b/docs/img/RE_2.png new file mode 100644 index 0000000..09f918b Binary files /dev/null and b/docs/img/RE_2.png differ diff --git a/docs/img/RE_3.png b/docs/img/RE_3.png new file mode 100644 index 0000000..6a92799 Binary files /dev/null and b/docs/img/RE_3.png differ diff --git a/docs/img/RE_4.png b/docs/img/RE_4.png new file mode 100644 index 0000000..abba740 Binary files /dev/null and b/docs/img/RE_4.png differ diff --git a/docs/img/RE_5.png b/docs/img/RE_5.png new file mode 100644 index 0000000..5cfb40a Binary files /dev/null and b/docs/img/RE_5.png differ diff --git a/docs/img/RE_6.png b/docs/img/RE_6.png new file mode 100644 index 0000000..3869d11 Binary files /dev/null and b/docs/img/RE_6.png differ diff --git a/docs/img/SE_1.png b/docs/img/SE_1.png new file mode 100644 index 0000000..1c3fc87 Binary files /dev/null and b/docs/img/SE_1.png differ diff --git a/docs/img/SE_2.png b/docs/img/SE_2.png new file mode 100644 index 0000000..7f27d06 Binary files /dev/null and b/docs/img/SE_2.png differ diff --git a/docs/img/SE_3.png b/docs/img/SE_3.png new file mode 100644 index 0000000..4ae0541 Binary files /dev/null and b/docs/img/SE_3.png differ diff --git a/docs/img/SE_4.png b/docs/img/SE_4.png new file mode 100644 index 0000000..87feef1 Binary files /dev/null and b/docs/img/SE_4.png differ diff --git a/docs/img/SE_5.png b/docs/img/SE_5.png new file mode 100644 index 0000000..97882bb Binary files /dev/null and b/docs/img/SE_5.png differ diff --git a/docs/img/SE_6.png b/docs/img/SE_6.png new file mode 100644 index 0000000..1b05610 Binary files /dev/null and b/docs/img/SE_6.png differ diff --git a/docs/img/SE_7.png b/docs/img/SE_7.png new file mode 100644 index 0000000..98f4399 Binary files /dev/null and b/docs/img/SE_7.png differ diff --git a/docs/img/SP_1.png b/docs/img/SP_1.png new file mode 100644 index 0000000..fbe6bf5 Binary files /dev/null and b/docs/img/SP_1.png differ diff --git a/docs/img/SP_2.png b/docs/img/SP_2.png new file mode 100644 index 0000000..f236578 Binary files /dev/null and b/docs/img/SP_2.png differ diff --git a/docs/img/TA_1.png b/docs/img/TA_1.png new file mode 100644 index 0000000..b53ed56 Binary files /dev/null and b/docs/img/TA_1.png differ diff --git a/docs/img/WB_1.png b/docs/img/WB_1.png new file mode 100644 index 0000000..836faa4 Binary files /dev/null and b/docs/img/WB_1.png differ diff --git a/docs/img/WB_10.png b/docs/img/WB_10.png new file mode 100644 index 0000000..44c8df5 Binary files /dev/null and b/docs/img/WB_10.png differ diff --git a/docs/img/WB_11.png b/docs/img/WB_11.png new file mode 100644 index 0000000..6719862 Binary files /dev/null and b/docs/img/WB_11.png differ diff --git a/docs/img/WB_12.png b/docs/img/WB_12.png new file mode 100644 index 0000000..f3efee4 Binary files /dev/null and b/docs/img/WB_12.png differ diff --git a/docs/img/WB_13.png b/docs/img/WB_13.png new file mode 100644 index 0000000..5814010 Binary files /dev/null and b/docs/img/WB_13.png differ diff --git a/docs/img/WB_14.png b/docs/img/WB_14.png new file mode 100644 index 0000000..dca1f1b Binary files /dev/null and b/docs/img/WB_14.png differ diff --git a/docs/img/WB_2.png b/docs/img/WB_2.png new file mode 100644 index 0000000..bc20fec Binary files /dev/null and b/docs/img/WB_2.png differ diff --git a/docs/img/WB_3.png b/docs/img/WB_3.png new file mode 100644 index 0000000..8506678 Binary files /dev/null and b/docs/img/WB_3.png differ diff --git a/docs/img/WB_4.png b/docs/img/WB_4.png new file mode 100644 index 0000000..360bc43 Binary files /dev/null and b/docs/img/WB_4.png differ diff --git a/docs/img/WB_5.png b/docs/img/WB_5.png new file mode 100644 index 0000000..c19b076 Binary files /dev/null and b/docs/img/WB_5.png differ diff --git a/docs/img/WB_6.png b/docs/img/WB_6.png new file mode 100644 index 0000000..1f1b6e5 Binary files /dev/null and b/docs/img/WB_6.png differ diff --git a/docs/img/WB_7.png b/docs/img/WB_7.png new file mode 100644 index 0000000..0c9c884 Binary files /dev/null and b/docs/img/WB_7.png differ diff --git a/docs/img/WB_8.png b/docs/img/WB_8.png new file mode 100644 index 0000000..d80861f Binary files /dev/null and b/docs/img/WB_8.png differ diff --git a/docs/img/WB_9.png b/docs/img/WB_9.png new file mode 100644 index 0000000..4b9b11f Binary files /dev/null and b/docs/img/WB_9.png differ diff --git a/docs/img/break_1.png b/docs/img/break_1.png new file mode 100644 index 0000000..b7b926c Binary files /dev/null and b/docs/img/break_1.png differ diff --git a/docs/img/calculation_1.png b/docs/img/calculation_1.png new file mode 100644 index 0000000..ce879eb Binary files /dev/null and b/docs/img/calculation_1.png differ diff --git a/docs/img/calculation_2.png b/docs/img/calculation_2.png new file mode 100644 index 0000000..f1cec96 Binary files /dev/null and b/docs/img/calculation_2.png differ diff --git a/docs/img/calculation_3.png b/docs/img/calculation_3.png new file mode 100644 index 0000000..91d07dd Binary files /dev/null and b/docs/img/calculation_3.png differ diff --git a/docs/img/condition_1.png b/docs/img/condition_1.png new file mode 100644 index 0000000..18c07dc Binary files /dev/null and b/docs/img/condition_1.png differ diff --git a/docs/img/condition_10.png b/docs/img/condition_10.png new file mode 100644 index 0000000..a08f856 Binary files /dev/null and b/docs/img/condition_10.png differ diff --git a/docs/img/condition_11.png b/docs/img/condition_11.png new file mode 100644 index 0000000..e901b1b Binary files /dev/null and b/docs/img/condition_11.png differ diff --git a/docs/img/condition_12.png b/docs/img/condition_12.png new file mode 100644 index 0000000..7a5c878 Binary files /dev/null and b/docs/img/condition_12.png differ diff --git a/docs/img/condition_13.png b/docs/img/condition_13.png new file mode 100644 index 0000000..172626c Binary files /dev/null and b/docs/img/condition_13.png differ diff --git a/docs/img/condition_14.png b/docs/img/condition_14.png new file mode 100644 index 0000000..e61403a Binary files /dev/null and b/docs/img/condition_14.png differ diff --git a/docs/img/condition_15.png b/docs/img/condition_15.png new file mode 100644 index 0000000..e2a5ebe Binary files /dev/null and b/docs/img/condition_15.png differ diff --git a/docs/img/condition_2.png b/docs/img/condition_2.png new file mode 100644 index 0000000..94a2105 Binary files /dev/null and b/docs/img/condition_2.png differ diff --git a/docs/img/condition_3.png b/docs/img/condition_3.png new file mode 100644 index 0000000..ac59230 Binary files /dev/null and b/docs/img/condition_3.png differ diff --git a/docs/img/condition_4.png b/docs/img/condition_4.png new file mode 100644 index 0000000..590e58c Binary files /dev/null and b/docs/img/condition_4.png differ diff --git a/docs/img/condition_5.png b/docs/img/condition_5.png new file mode 100644 index 0000000..5829bee Binary files /dev/null and b/docs/img/condition_5.png differ diff --git a/docs/img/condition_6.png b/docs/img/condition_6.png new file mode 100644 index 0000000..4c9ed59 Binary files /dev/null and b/docs/img/condition_6.png differ diff --git a/docs/img/condition_7.png b/docs/img/condition_7.png new file mode 100644 index 0000000..0f12c33 Binary files /dev/null and b/docs/img/condition_7.png differ diff --git a/docs/img/condition_8.png b/docs/img/condition_8.png new file mode 100644 index 0000000..025cf80 Binary files /dev/null and b/docs/img/condition_8.png differ diff --git a/docs/img/condition_9.png b/docs/img/condition_9.png new file mode 100644 index 0000000..f4e1b38 Binary files /dev/null and b/docs/img/condition_9.png differ diff --git a/docs/img/cycle_1.png b/docs/img/cycle_1.png new file mode 100644 index 0000000..31d9815 Binary files /dev/null and b/docs/img/cycle_1.png differ diff --git a/docs/img/cycle_2.png b/docs/img/cycle_2.png new file mode 100644 index 0000000..3f80b66 Binary files /dev/null and b/docs/img/cycle_2.png differ diff --git a/docs/img/cycle_3.png b/docs/img/cycle_3.png new file mode 100644 index 0000000..679fc6c Binary files /dev/null and b/docs/img/cycle_3.png differ diff --git a/docs/img/hg_1.png b/docs/img/hg_1.png new file mode 100644 index 0000000..ef160e9 Binary files /dev/null and b/docs/img/hg_1.png differ diff --git a/docs/img/hp_1.png b/docs/img/hp_1.png new file mode 100644 index 0000000..5f26fc8 Binary files /dev/null and b/docs/img/hp_1.png differ diff --git a/docs/img/interface_1.png b/docs/img/interface_1.png new file mode 100644 index 0000000..90d73f1 Binary files /dev/null and b/docs/img/interface_1.png differ diff --git a/docs/img/interface_10.png b/docs/img/interface_10.png new file mode 100644 index 0000000..c3b57fd Binary files /dev/null and b/docs/img/interface_10.png differ diff --git a/docs/img/interface_11.png b/docs/img/interface_11.png new file mode 100644 index 0000000..c1d9e83 Binary files /dev/null and b/docs/img/interface_11.png differ diff --git a/docs/img/interface_12.png b/docs/img/interface_12.png new file mode 100644 index 0000000..a032ba3 Binary files /dev/null and b/docs/img/interface_12.png differ diff --git a/docs/img/interface_13.png b/docs/img/interface_13.png new file mode 100644 index 0000000..28797e8 Binary files /dev/null and b/docs/img/interface_13.png differ diff --git a/docs/img/interface_14.png b/docs/img/interface_14.png new file mode 100644 index 0000000..c22a8f5 Binary files /dev/null and b/docs/img/interface_14.png differ diff --git a/docs/img/interface_15.png b/docs/img/interface_15.png new file mode 100644 index 0000000..e315ee0 Binary files /dev/null and b/docs/img/interface_15.png differ diff --git a/docs/img/interface_16.png b/docs/img/interface_16.png new file mode 100644 index 0000000..7e5db04 Binary files /dev/null and b/docs/img/interface_16.png differ diff --git a/docs/img/interface_17.png b/docs/img/interface_17.png new file mode 100644 index 0000000..5148edd Binary files /dev/null and b/docs/img/interface_17.png differ diff --git a/docs/img/interface_18.png b/docs/img/interface_18.png new file mode 100644 index 0000000..df14fc9 Binary files /dev/null and b/docs/img/interface_18.png differ diff --git a/docs/img/interface_19.png b/docs/img/interface_19.png new file mode 100644 index 0000000..eb72e6d Binary files /dev/null and b/docs/img/interface_19.png differ diff --git a/docs/img/interface_2.png b/docs/img/interface_2.png new file mode 100644 index 0000000..a730322 Binary files /dev/null and b/docs/img/interface_2.png differ diff --git a/docs/img/interface_20.png b/docs/img/interface_20.png new file mode 100644 index 0000000..95390f6 Binary files /dev/null and b/docs/img/interface_20.png differ diff --git a/docs/img/interface_21.png b/docs/img/interface_21.png new file mode 100644 index 0000000..9d61a38 Binary files /dev/null and b/docs/img/interface_21.png differ diff --git a/docs/img/interface_22.png b/docs/img/interface_22.png new file mode 100644 index 0000000..b8c789b Binary files /dev/null and b/docs/img/interface_22.png differ diff --git a/docs/img/interface_23.png b/docs/img/interface_23.png new file mode 100644 index 0000000..8de8878 Binary files /dev/null and b/docs/img/interface_23.png differ diff --git a/docs/img/interface_24.png b/docs/img/interface_24.png new file mode 100644 index 0000000..9b7bdf4 Binary files /dev/null and b/docs/img/interface_24.png differ diff --git a/docs/img/interface_25.png b/docs/img/interface_25.png new file mode 100644 index 0000000..f4f3e82 Binary files /dev/null and b/docs/img/interface_25.png differ diff --git a/docs/img/interface_3.png b/docs/img/interface_3.png new file mode 100644 index 0000000..3d02601 Binary files /dev/null and b/docs/img/interface_3.png differ diff --git a/docs/img/interface_4.png b/docs/img/interface_4.png new file mode 100644 index 0000000..b325984 Binary files /dev/null and b/docs/img/interface_4.png differ diff --git a/docs/img/interface_5.png b/docs/img/interface_5.png new file mode 100644 index 0000000..76f4185 Binary files /dev/null and b/docs/img/interface_5.png differ diff --git a/docs/img/interface_6.png b/docs/img/interface_6.png new file mode 100644 index 0000000..f160824 Binary files /dev/null and b/docs/img/interface_6.png differ diff --git a/docs/img/interface_7.png b/docs/img/interface_7.png new file mode 100644 index 0000000..8e8430d Binary files /dev/null and b/docs/img/interface_7.png differ diff --git a/docs/img/interface_8.png b/docs/img/interface_8.png new file mode 100644 index 0000000..d1e49de Binary files /dev/null and b/docs/img/interface_8.png differ diff --git a/docs/img/interface_9.png b/docs/img/interface_9.png new file mode 100644 index 0000000..99defd7 Binary files /dev/null and b/docs/img/interface_9.png differ diff --git a/docs/img/js_1.png b/docs/img/js_1.png new file mode 100644 index 0000000..d85eaab Binary files /dev/null and b/docs/img/js_1.png differ diff --git a/docs/img/js_2.png b/docs/img/js_2.png new file mode 100644 index 0000000..6d3926e Binary files /dev/null and b/docs/img/js_2.png differ diff --git a/docs/img/js_3.png b/docs/img/js_3.png new file mode 100644 index 0000000..8d4c23b Binary files /dev/null and b/docs/img/js_3.png differ diff --git a/docs/img/pause_1.png b/docs/img/pause_1.png new file mode 100644 index 0000000..11775a4 Binary files /dev/null and b/docs/img/pause_1.png differ diff --git a/docs/img/proxy_1.png b/docs/img/proxy_1.png new file mode 100644 index 0000000..e5513ef Binary files /dev/null and b/docs/img/proxy_1.png differ diff --git a/docs/img/return_1.png b/docs/img/return_1.png new file mode 100644 index 0000000..15f4f65 Binary files /dev/null and b/docs/img/return_1.png differ diff --git a/docs/img/return_2.png b/docs/img/return_2.png new file mode 100644 index 0000000..c8178ea Binary files /dev/null and b/docs/img/return_2.png differ diff --git a/docs/img/sql_1.png b/docs/img/sql_1.png new file mode 100644 index 0000000..20ba291 Binary files /dev/null and b/docs/img/sql_1.png differ diff --git a/docs/img/while_1.png b/docs/img/while_1.png new file mode 100644 index 0000000..84d811c Binary files /dev/null and b/docs/img/while_1.png differ diff --git a/docs/img/while_2.png b/docs/img/while_2.png new file mode 100644 index 0000000..d51c759 Binary files /dev/null and b/docs/img/while_2.png differ diff --git a/docs/img/while_3.png b/docs/img/while_3.png new file mode 100644 index 0000000..66806a6 Binary files /dev/null and b/docs/img/while_3.png differ