- Версия AutoIt
- 3.3.10.0
- Версия
- 1.8
Категория: Автоматизация, Элементы GUI
Описание:
Набор функций, расширяющий возможности AutoIt по работе с нестандартными элементами GUI. При помощи данных функций возможна автоматизация элементов таких классов, как DirectUIHWND, NetUIHWND, UIRibbonWorkPane, автоматизация таких программ, как Google Chrome, Mozilla Firefox, автоматизация элементов графических интерфейсов, написанных на Delphi, .NET (WPF), QT и т.д.
Для получения информации об элементе потребуется утилита Inspect (входит в комплект файлов). Если данная утилита при запуске сообщает об ошибке, значит на компьютере не установлен API UIAutomation. На Windows 7 и выше данный API предустановлен. На Vista и XP нужно отдельно установить обновление KB971513: support.microsoft.com или catalog.update.microsoft.com.
Функции:
Пример:
История версий:
Описание:
Набор функций, расширяющий возможности AutoIt по работе с нестандартными элементами GUI. При помощи данных функций возможна автоматизация элементов таких классов, как DirectUIHWND, NetUIHWND, UIRibbonWorkPane, автоматизация таких программ, как Google Chrome, Mozilla Firefox, автоматизация элементов графических интерфейсов, написанных на Delphi, .NET (WPF), QT и т.д.
Для получения информации об элементе потребуется утилита Inspect (входит в комплект файлов). Если данная утилита при запуске сообщает об ошибке, значит на компьютере не установлен API UIAutomation. На Windows 7 и выше данный API предустановлен. На Vista и XP нужно отдельно установить обновление KB971513: support.microsoft.com или catalog.update.microsoft.com.
Функции:
Справка по перечисленным ниже функциям библиотеки находится непосредственно в UDF UIAutomate.au3 перед кодом каждой функции.
_UIA_CreateLogicalCondition Создаёт логическое условие на основе заданных условий
_UIA_CreatePropertyCondition Создаёт условие на основе свойства и его значения
_UIA_ElementDoDefaultAction Выполнение элементом действия по умолчанию
_UIA_ElementFindInArray Находит элемент, соответствующий заданному свойству и его значению
_UIA_ElementGetBoundingRectangle Определяет прямоугольную область, ограничивающую элемент
_UIA_ElementGetFirstLastChild Находит первый и последний дочерние элементы (объекты) указанного элемента
_UIA_ElementGetParent Определяет родительский элемент (объект) указанного элемента
_UIA_ElementGetPreviousNext Находит предыдущий и следующий элементы того же уровня
_UIA_ElementGetPropertyValue Определяет значение заданного свойства элемента
_UIA_ElementMouseClick Выполняет клик мыши по элементу
_UIA_ElementScrollIntoView Прокручивает элемент в область видимости
_UIA_ElementSetFocus Устанавливает элементу фокус ввода
_UIA_ElementTextSetValue Устанавливает значение (текст) в текстовый элемент
_UIA_FindAllElements Находит все элементы, соответствующие заданному свойству и его значению
_UIA_FindAllElementsEx Находит все элементы, соответствующие условию поиска
_UIA_FindElementsInArray Находит все элементы, соответствующие заданному свойству и его значению
_UIA_GetControlTypeElement Находит элемент (объект) указанного типа с заданным свойством и значением
_UIA_GetElementFromCondition Находит элемент (объект) на основе заданного условия
_UIA_GetElementFromFocus Создаёт элемент (объект) на основе фокуса ввода
_UIA_GetElementFromHandle Создаёт элемент (объект) на основе дескриптора
_UIA_GetElementFromPoint Создаёт элемент (объект) на основе экранных координат
_UIA_ObjectCreate Создаёт объект UIAutomation
_UIA_WaitControlTypeElement Ожидает элемент (объект) указанного типа с заданным свойством и значением
_UIA_WaitElementFromCondition Ожидает элемент (объект) на основе заданного условия
_UIA_CreateLogicalCondition Создаёт логическое условие на основе заданных условий
_UIA_CreatePropertyCondition Создаёт условие на основе свойства и его значения
_UIA_ElementDoDefaultAction Выполнение элементом действия по умолчанию
_UIA_ElementFindInArray Находит элемент, соответствующий заданному свойству и его значению
_UIA_ElementGetBoundingRectangle Определяет прямоугольную область, ограничивающую элемент
_UIA_ElementGetFirstLastChild Находит первый и последний дочерние элементы (объекты) указанного элемента
_UIA_ElementGetParent Определяет родительский элемент (объект) указанного элемента
_UIA_ElementGetPreviousNext Находит предыдущий и следующий элементы того же уровня
_UIA_ElementGetPropertyValue Определяет значение заданного свойства элемента
_UIA_ElementMouseClick Выполняет клик мыши по элементу
_UIA_ElementScrollIntoView Прокручивает элемент в область видимости
_UIA_ElementSetFocus Устанавливает элементу фокус ввода
_UIA_ElementTextSetValue Устанавливает значение (текст) в текстовый элемент
_UIA_FindAllElements Находит все элементы, соответствующие заданному свойству и его значению
_UIA_FindAllElementsEx Находит все элементы, соответствующие условию поиска
_UIA_FindElementsInArray Находит все элементы, соответствующие заданному свойству и его значению
_UIA_GetControlTypeElement Находит элемент (объект) указанного типа с заданным свойством и значением
_UIA_GetElementFromCondition Находит элемент (объект) на основе заданного условия
_UIA_GetElementFromFocus Создаёт элемент (объект) на основе фокуса ввода
_UIA_GetElementFromHandle Создаёт элемент (объект) на основе дескриптора
_UIA_GetElementFromPoint Создаёт элемент (объект) на основе экранных координат
_UIA_ObjectCreate Создаёт объект UIAutomation
_UIA_WaitControlTypeElement Ожидает элемент (объект) указанного типа с заданным свойством и значением
_UIA_WaitElementFromCondition Ожидает элемент (объект) на основе заданного условия
Пример:
Код:
; Демонстрация автоматизации Chrome версии 81
#include "UIAutomate.au3"
Opt("WinTitleMatchMode", 2)
; Данные авторизации
Global $sLogin = "User"
Global $sPassword = "12345"
; Путь установки Chrome
Global $sChromePath = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
; Запуск Chrome с параметром --force-renderer-accessibility
; При отсутствии этого параметра доступ к элементам страницы будет запрещён
Run($sChromePath & " --force-renderer-accessibility")
$hWnd = WinWait(" - Google Chrome", "", 3)
If Not $hWnd Then Exit MsgBox(0x40000, "UIAutomate", "Окно Chrome не найдено", 3)
; Создание элемента с использованием дескриптора окна
$oParent = _UIA_GetElementFromHandle($hWnd)
; Поиск кнопки с именем "Новая вкладка" и клик по ней
$oElement = _UIA_GetControlTypeElement($oParent, "UIA_ButtonControlTypeId", "Новая вкладка")
_UIA_ElementMouseClick($oElement)
; Поиск строки адреса и установка текста
$oElement = _UIA_GetControlTypeElement($oParent, "UIA_EditControlTypeId", "Адресная строка и строка поиска")
_UIA_ElementTextSetValue($oElement, "autoit-script.ru")
; Переход на сайт
Send("{enter}")
; Ожидание загрузки страницы по наличию кнопки "Перезагрузить"
_UIA_WaitControlTypeElement($oParent, "UIA_ButtonControlTypeId", "Обновить эту страницу", "LegacyIAccessible.Description")
; Отключение вывода ошибок
$UIA_ConsoleWriteError = 0
; Поиск гиперссылки авторизации
$oElement = _UIA_GetControlTypeElement($oParent, "UIA_HyperlinkControlTypeId", "Вход")
; Включение вывода ошибок
$UIA_ConsoleWriteError = 1
; Авторизация при наличии ссылки "Вход"
If IsObj($oElement) Then
; Переход по ссылке "Вход"
_UIA_ElementDoDefaultAction($oElement)
; Ожидание поля ввода логина
$oElement = _UIA_WaitControlTypeElement($oParent, "UIA_EditControlTypeId", "Имя пользователя или адрес электронной почты")
; Ввод логина
_UIA_ElementTextSetValue($oElement, $sLogin)
; Ожидание поля ввода пароля
$oElement = _UIA_WaitControlTypeElement($oParent, "UIA_EditControlTypeId", "Пароль")
; Ввод пароля
_UIA_ElementTextSetValue($oElement, $sPassword)
; Поиск и нажатие кнопки "Войти"
$oElement = _UIA_GetControlTypeElement($oParent, "UIA_ButtonControlTypeId", "Войти")
_UIA_ElementDoDefaultAction($oElement)
; Ожидание загрузки страницы по наличию кнопки "Перезагрузить"
_UIA_WaitControlTypeElement($oParent, "UIA_ButtonControlTypeId", "Обновить эту страницу", "LegacyIAccessible.Description")
EndIf
; Поиск и переход по ссылке "UDF - Пользовательские функции"
$oElement = _UIA_GetControlTypeElement($oParent, "UIA_HyperlinkControlTypeId", "UDF - Пользовательские функции")
If @error Then Exit MsgBox(0x40000, "UIAutomate", "Авторизация не пройдена", 3)
_UIA_ElementDoDefaultAction($oElement)
; Поиск и переход по ссылке "UIAutomate - автоматизация нестандартных элементов GUI" с использованием части имени
_UIA_ElementDoDefaultAction(_UIA_WaitControlTypeElement($oParent, "UIA_HyperlinkControlTypeId", "автоматизация нестандартных элементов", "Name", True))
История версий:
1.0:
- первая публичная версия
1.1:
- добавлена функция _UIA_ElementGetPreviousNext() для поиска предыдущего и следующего элементов того же уровня
- добавлена возможность вывода ошибок в консоль: глобальный переключатель $UIA_ConsoleWriteError (включён по умолчанию)
- в CUIAutomation2.au3 добавлены директивы #Au3Stripper_Off и #Au3Stripper_On для идентификаторов свойств и типов
1.2:
- добавлены функции _UIA_CreateLogicalCondition(), _UIA_CreatePropertyCondition(), _UIA_ElementGetFirstLastChild(), _UIA_ElementGetParent(), _UIA_FindAllElementsEx(), _UIA_GetElementFromCondition(), _UIA_WaitElementFromCondition()
1.3:
- добавлена функция _UIA_ElementFindInArray(), позволяющая находить объект в массиве объектов и возвращающая индекс элемента исходного массива
- функция _UIA_ElementDoDefaulAction() переименована в _UIA_ElementDoDefaultAction()
- добавлена проверка ошибок выполнения методов объекта UIAutomation
- в функцию _UIA_ElementMouseClick() добавлена опция активации элемента перед кликом
- в функцию _UIA_FindElementsInArray() добавлен переключатель: элементами возвращаемого массива могут быть или объекты или индексы элементов исходного массива
1.4:
- файл с описанием констант CUIAutomation2.au3 переименован в UIAConstants.au3
- в файл UIAConstants.au3 добавлены новые константы (до Windows 10 включительно)
- добавлена функция _UIA_ElementScrollIntoView(), прокручивающая элемент в область видимости
- обновлена утилита Inspect (из пакета SDK для Windows 10)
1.5:
- добавлена глобальная переменная $UIA_ElementVersion, позволяющая указывать версию создаваемого элемента (объекта): 0-авто; 1-WIN_7 и ниже; 2-WIN_8; 3-WIN_81; 4,5-WIN_10
- в архив добавлены обе версии Inspect (Win7 и Win10) для возможности сравнения свойств элементов разных версий
1.6:
- устранены утечки памяти по причине некорректной работы с условиями
- для функции _UIA_ElementMouseClick() дополнительно отслеживаются ошибки функции MouseClick и выхода координат за пределы элемента; курсор теперь остаётся в точке клика
- для функции _UIA_GetElementFromPoint() добавлены умолчания: координаты курсора мыши
- функция _UIA_GetFocusedElement() переименована в _UIA_GetElementFromFocus()
1.7:
- добавлена поддержка Windows 10 (1703) "Creators Update": возможность создания объекта IUIAutomation версии 4 и элементов версий 6 и 7
1.8:
- предотвращены возможные утечки памяти при перезаписи указателей
- добавлена проверка на наличие элементов в массиве для функций, принимающих массив
- первая публичная версия
1.1:
- добавлена функция _UIA_ElementGetPreviousNext() для поиска предыдущего и следующего элементов того же уровня
- добавлена возможность вывода ошибок в консоль: глобальный переключатель $UIA_ConsoleWriteError (включён по умолчанию)
- в CUIAutomation2.au3 добавлены директивы #Au3Stripper_Off и #Au3Stripper_On для идентификаторов свойств и типов
1.2:
- добавлены функции _UIA_CreateLogicalCondition(), _UIA_CreatePropertyCondition(), _UIA_ElementGetFirstLastChild(), _UIA_ElementGetParent(), _UIA_FindAllElementsEx(), _UIA_GetElementFromCondition(), _UIA_WaitElementFromCondition()
1.3:
- добавлена функция _UIA_ElementFindInArray(), позволяющая находить объект в массиве объектов и возвращающая индекс элемента исходного массива
- функция _UIA_ElementDoDefaulAction() переименована в _UIA_ElementDoDefaultAction()
- добавлена проверка ошибок выполнения методов объекта UIAutomation
- в функцию _UIA_ElementMouseClick() добавлена опция активации элемента перед кликом
- в функцию _UIA_FindElementsInArray() добавлен переключатель: элементами возвращаемого массива могут быть или объекты или индексы элементов исходного массива
1.4:
- файл с описанием констант CUIAutomation2.au3 переименован в UIAConstants.au3
- в файл UIAConstants.au3 добавлены новые константы (до Windows 10 включительно)
- добавлена функция _UIA_ElementScrollIntoView(), прокручивающая элемент в область видимости
- обновлена утилита Inspect (из пакета SDK для Windows 10)
1.5:
- добавлена глобальная переменная $UIA_ElementVersion, позволяющая указывать версию создаваемого элемента (объекта): 0-авто; 1-WIN_7 и ниже; 2-WIN_8; 3-WIN_81; 4,5-WIN_10
- в архив добавлены обе версии Inspect (Win7 и Win10) для возможности сравнения свойств элементов разных версий
1.6:
- устранены утечки памяти по причине некорректной работы с условиями
- для функции _UIA_ElementMouseClick() дополнительно отслеживаются ошибки функции MouseClick и выхода координат за пределы элемента; курсор теперь остаётся в точке клика
- для функции _UIA_GetElementFromPoint() добавлены умолчания: координаты курсора мыши
- функция _UIA_GetFocusedElement() переименована в _UIA_GetElementFromFocus()
1.7:
- добавлена поддержка Windows 10 (1703) "Creators Update": возможность создания объекта IUIAutomation версии 4 и элементов версий 6 и 7
1.8:
- предотвращены возможные утечки памяти при перезаписи указателей
- добавлена проверка на наличие элементов в массиве для функций, принимающих массив
- Автор
- InnI
- Источник
- Ссылка на источник
Вложения
Последнее редактирование: