1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/legion-spider-man-UiAuto

Клонировать/Скачать
plugin.md 20 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 21:49 55dcec4

Использование фреймворка (генерация структуры каталогов плагинов не соответствует новой версии uiauto, требуется разработка и обновление)

CLI

UiAuto предоставляет фреймворк для разработки плагинов, который упрощает процесс разработки плагинов UiAuto. Он помогает разработчикам плагинов упростить процесс разработки и снизить вероятность ошибок при определении параметров, что позволяет разработчикам сосредоточиться на реализации кода.

Установка

Выполните команду в командной строке:

npm install -g uiauto-cli// глобальная установка CLI
  • Создайте новый проект плагина Перейдите в каталог, где будет храниться плагин, и откройте командную строку.
uiauto init "pluginName"// инициализация проекта плагина с именем pluginName в текущем каталоге

После выполнения этой команды командная строка будет запрашивать ввод данных от разработчика до тех пор, пока конфигурация не будет завершена. После завершения настройки CLI автоматически создаст папку проекта с именем «plugin_name» в текущем пути.

  • Добавьте новые функции в существующий проект плагина
uiauto add// добавьте новые функции в текущий проект плагина в текущем каталоге

После выполнения этой команды командная строка продолжит запрашивать данные от разработчика. После того как настройка будет завершена, CLI добавит новую функцию в конфигурацию существующего проекта плагина. Однако параметры, необходимые для новой функции, всё ещё необходимо настроить вручную. Для получения дополнительной информации о настройке параметров продолжайте читать ниже.

Структура каталога плагинов

demo
└─ 1.0.0 // версия плагина, должна соответствовать описанию в package.json
       ├─ index.js // файл логики входа на JavaScript, должен называться index
       ├─ index.py // файл логики входа на Python, должен называться index
       ├─ node_modules // зависимости Node.js
       ├─ requirements.txt // зависимости Python
       ├─ package-lock.json
       ├─ package.json
       ├─ packages
       └─ util.js // пользовательский файл логики

Разработка плагина

Плагин состоит из файла описания и программы входа. Программа входа является основным методом, предоставляющим доступ к каждой операции плагина (для плагинов на основе Java, программа входа представляет собой скомпилированный и упакованный jar-файл).

Зависимости плагина

Для плагинов на Python зависимости настраиваются через файл requirements.txt. Для плагинов на Node.JS зависимости настраиваются в файле package.json в свойстве dependencies. Для плагинов на Java зависимости должны быть упакованы вместе с jar-файлом во время компиляции.

Структура файла описания

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

{
    "id": "hello-world",
    "name": "hello-world", // название проекта
    "description": "say hello from UiAuto!",
    "version": "1.0.0",
    "author": "UiAuto",
    "language": "nodejs",
    "license": "MIT",
    "dependencies": {
        "lodash": "4.17.11" // зависимости плагина
    },
    "uiauto_config": {
        "attribution_id": "software_automation", // категория первого уровня
        "attribution_name": "программное обеспечение автоматизации", // имя категории первого уровня
        "operations": [{
            "category_id": "plugin-template", // класс операции, операции сортируются по этому параметру
            "category_name": "шаблонный плагин", // имя класса, если category_id выше еще не существует, это имя будет отображаться на интерфейсе
            "operation_id": "plugin-one",
            "operation_name": "плагин один",
            "method": "sayHello", // при выполнении этой операции активируется функция с именем sayHello в "./index.js" ("./index.py" в Python)
            "type": "Convention", // у нас есть следующие типы => [Start, Condition, Convention, Circulation, Script, End]. Только Condition и Convention могут быть определены
            "input": [{
                "name": "обязательные атрибуты", // метка этой группы ввода
                "id": "required_params",
                "properties": [{
                        "id": "addressee", // идентификатор этого ввода
                        "name": "имя пользователя", // ярлык этого ввода
                        "type": "text", // тип этого ввода, вы можете прочитать подробности различных типов ниже
                        "required": true, // требуется ли значение
                        "value": "uiauto_group" // значение по умолчанию
                    },
                    {
                        "id": "file",
                        "name": "файл",
                                "type": "file",
                        "required": true,
                        "value": ""
                    }
                ]
            }, {
                "name": "необязательные атрибуты",
                "id": "unrequired_params",
                "properties": [{
                    "id": "drink",
                    "name": "напиток",
                    "required": false,
                    "type": "select",
                    "value": "tea" // значение по умолчанию
                    "options": {
                        "multiple": true, // обязательный параметр, может ли пользователь сделать несколько вариантов выбора или нет
                        "choices": [{
                            "value": "juice",
                            "label": "фруктовый сок"
                        }, {
                            "value": "coffee",
                            "label": "кофе"
                        }, {
                            "value": "tea",
                            "label": "чай"
                        }] // перечислить группы значений и меток
                    }
                }]
            }],
            "output": { **Свойства типов**

* **text**: тип «текст».
``` javascript
{
    "type": "text",
    "value": "default value"// 默认值
}

Результат: <String>.

  • password: тип «пароль». Пароль отображается символами «···».
{
    "type": "password",
    "value": "default value"// 默认值
}

Результат: <String>.

  • string: тип «строка». Текст предназначен только для отображения, его нельзя редактировать.
{
    "type": "string",
    "value": "value which can not be edited"
}

Результат: null.

  • file: тип «файл». В данный момент поддерживает только выбор одного файла.
{
    "type": "file"
}

Результат: <String <filePath>>.

  • color: тип «цвет». По умолчанию значение — #c71585. Поддерживает выбор цвета из списка или ввод значения в формате #rrggbb или #rgb.
{
    "type": "color",
    "value": "#c71585"// default value 「默认值」,
    "options": {
        "predefineColors": [
            "#ff4500",
            "#ff8c00",
            "#ffd700",
            "#90ee90",
            "#00ced1",
            "#1e90ff",
            "#c71585",
            "rgba(255, 69, 0, 0.68)",
            "rgb(255, 120, 0)",
            "hsv(51, 100, 98)",
            "hsva(120, 40, 94, 0.5)",
            "hsl(181, 100%, 37%)",
            "hsla(209, 100%, 56%, 0.73)",
            "#c7158577"
        ]
    }
}

Результат: <String>.

  • checkbox: тип «флажок». Может содержать несколько значений. По умолчанию флажок не установлен.
{
    "type": "checkbox",
    "value": [],// default value 「默认值」
    "options": {
        "checked": [] // 默认选中
    }
}

Результат: <Array>.

  • dateTimeRange: тип «временной диапазон». Значение по умолчанию — с 1 мая 2019 года 00:00:00 до 1 октября 2019 года 12:00:00. Параметр options.type может принимать значения «daterange» (дата), «datetimerange» (дата и время) или «monthrange» (месяц).
{
"type": "dateTimeRange",
"value": ["2019-05-01 00:00:00", "2019-10-01 12:00:00"]// default value 「默认值」
    "options": {
        "type": "daterange" // "datetimerange" | "daterange" | "monthrange"
    }
}

Результат: <Array(2)>.

  • inputNumber: тип «счётчик». Счётчик принимает только числовые значения. Значение по умолчанию — 10.
{
    "type": "inputNumber",
    "value": 10 // 默认值
}

Результат: <Number>.

  • conditions: тип «условие». Значения представляют собой неравенства. Значение по умолчанию: value1 > 10, value2 < 50.
{
    "type": "conditions",
    "value": ["value1 > 10", "value2 < 50"] // 默认值
}

Результат: <Array>.

  • dateTime: тип «дата и время». Формат значения по умолчанию — «2019–05–01 00:00:00». Параметр options.type принимает значения «datetime» (дата и время), «date» (только дата) или «time» (время).
{
    "type": "dateTime",
    "value": "2019-05-01 00:00:00"// default value 「默认值」
    "options": {
        "type": "datetime" // "datetime" | "date" | "time"
    }
}

Результат: <String>.

  • radio: тип «радиокнопка». Радиокнопка принимает одно значение из предложенного списка. Значение по умолчанию — tea. Список значений задаётся параметром options.choices.
{
    "type": "radio",
    "value": "tea"// default value 「默认值」
    "options": {
        "choices": ["juice", "coffee", "tea"] // enumerations
    }
}

Результат: <String>.

  • select: тип «выпадающий список». Выпадающий список может содержать один или несколько элементов. Значение по умолчанию — tea. Список значений задаётся параметром options.choices. Если параметр options.multiple имеет значение true, то результатом будет массив. В противном случае — строка.
{
    "type": "select",
    "value": "tea"// default value 「默认值」
    "options": {
    "multiple": true, // required option, could the user make multiple choices or not
    "choices": [{
        "value":"juice",
        "label":"果汁"
        }, {
        "value":"coffee",
        "label":"咖啡"
        }, {
        "value":"tea",
        "label":""
    }] // enumerate groups of value and label
    }
}

!options.multiple: результат — <String>; options.multiple: результат — <Array>.

  • slider: тип «ползунок». Ползунок принимает числовое значение от 0 до 100 с шагом 10. Значение по умолчанию — 10. Параметры options.step, options.max и options.min могут быть изменены.
{
    "type": "slider",
    "value": 10// default value 「默认值」
    "options": {
    "step": 10, // unrequired option, default 0
    "max": 100, // maximum, default 100
    "min": 0 // minimum, defalut 0
    "precision": 1 // precision, defalut 1
}

Результат: <String>.

  • switch: тип «переключатель». Переключатель принимает значение true или false. Значение по умолчанию — false.
{
    "type": "switch",
    "value": false// default value 「默认值」
}

Результат: <Boolean>.

  • json: тип «JSON». Принимает объект JSON. Значение по умолчанию — {demo_key: demo_value}.
{
    "type": "json",
    "value": {
        "demo_key": "demo_value"
    }// default value 「默认值」
}

Результат: <Boolean>.

  • code: тип «редактор кода». Редактор кода принимает строку. Значение по умолчанию — print('Hello World!').
{
    "type": "code",
    "value": "print('Hello World!')"// default value 「默认值」
}

Результат: <Boolean>.

  • screenshot: тип «снимок экрана». Снимок экрана представляет собой путь к файлу.
{
    "type": "screenshot",
    "value: "" // image path
}

Результат: <String>.

  • uiselector: тип «выбор UI». Выбор UI содержит параметры системы.
{
    "type": "uiselector",
    "value": {
        "system": {
            "DesktopSize": "1920, 960",
            "Radio": 1,
            "PointInScreen": "601,

Здесь приведён перевод текста без учёта контекста. Для точного перевода необходимо больше информации о контексте использования данных свойств. ## Свойства типа общей конфигурации
### Связанное с вводом свойств
> Если вы используете UiAuto для разработки и вам нужно динамически отображать/скрывать некоторые поля ввода или реализовывать другие сложные входные конфигурации, требующие взаимодействия, вы можете настроить их с помощью параметра «show_if».

``` javascript
{
    ...


    "uiauto_config": {
        "operations": [{


            ...


            "input": [{
                "name": "Обязательные свойства",
                "id": "required_params",
                "properties": [{
                    "id": "dishType",
                    "name": "Тип блюда",
                    "required": true,
                    "type": "select",
                    "value": "single" // default value
                    "options": {
                        "multiple": false, // required option, could the user make multiple choices or not
                        "choices": [{
                            "value": "single",
                            "label": "Один пункт"
                        }, {
                            "value": "package",
                            "label": "Набор"
                        }] // enumerate groups of value and label
                    }
                }, {
                    "id": "stapleFood",
                    "name": "Основное блюдо",
                    "required": true,
                    "type": "select",
                    "value": "friedRice" // default value
                    "options": {
                        "multiple": false, // required option, could the user make multiple choices or not
                                          "choices": [{
                            "value": "pasta",
                            "label": "Паста"
                        }, {
                            "value": "friedRice",
                            "label": "Жареный рис"
                        }, {
                            "value": "steak",
                            "label": "Стейк"
                        }] // enumerate groups of value and label
                    }
                }]
            }, {
                "name": "Необязательные свойства",
                "id": "unrequired_params",
                "properties": [{
                    "id": "drink",
                    "name": "Напиток",
                    "show_if": "$input.required.dishType==='package'",
                    "required": false,
                    "type": "select",
                    "value": "tea" // default value
                    "options": {
                        "multiple": false, // required option, could the user make multiple choices or not
                        "choices": [{
                            "value": "juice",
                            "label": "Сок"
                        }, {
                            "value": "coffee",
                            "label": "Кофе"
                        }, {
                            "value": "tea",
                            "label": "Чай"
                        }] // enumerate groups of value and label
                    }
                }]
            }],
            "output": {
                "is_allow_global_use": true,
                "description":

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/legion-spider-man-UiAuto.git
git@api.gitlife.ru:oschina-mirror/legion-spider-man-UiAuto.git
oschina-mirror
legion-spider-man-UiAuto
legion-spider-man-UiAuto
master