hs.axuielement
Этот модуль позволяет вам получить доступ к объектам доступности запущенных приложений, их окнам, меню и другим элементам пользовательского интерфейса, поддерживающим API доступности OS X.
Этот модуль работает с помощью axuielementObjects, являющихся представлением Hammerspoon для объекта доступности. Объект доступности представляет собой любой объект или компонент приложения OS X, который может быть изменён через API доступности OS X — это может быть приложение, окно, кнопка, выделенный текст и т. д. Таким образом, он может поддерживать только те функции и объекты внутри приложения, которые разработчики приложения предоставляют через API доступности.
В дополнение к формальным методам, описанным в этом документе, существуют динамические методы для доступа к атрибутам и действиям элементов. Они будут несколько отличаться в зависимости от объектов, так как конкретные атрибуты и действия зависят от роли и назначения объекта доступности, но ниже изложены основы.
Получение и установка значений атрибутов:
-
object.attribute— это сокращение дляobject:attributeValue(attribute) -
object.attribute = value— это сокращение дляobject:setAttributeValue(attribute, value)- Если необходимо обнаруживать ошибки доступности, которые могут возникнуть, вы должны использовать формальные методы hs.axuielement:attributeValue и hs.axuielement:setAttributeValue
- Обратите внимание, что установка значения атрибута не гарантируется ни для одного из методов:
- внутренняя логика принимающего приложения может отказаться принять новое назначенное значение
- может возникнуть ошибка доступности
- элемент может быть не изменяемым (удивительно, что это не возвращает ошибку, даже когда hs.axuielement:isAttributeSettable возвращает false для указанного атрибута)
- Если вам нужна подтверждение изменения, вам необходимо проверить значение атрибута с помощью одного из описанных выше методов после его установки.
Итерация по атрибутам:
-
for k,v in pairs(object) do ... end— это сокращение дляfor k,_ in ipairs(object:attributeNames()) do local v = object:attributeValue(k) ; ... endилиfor k,v in pairs(object:allAttributeValues()) do ... end(хотя см. примечание ниже)- Если необходимо обнаруживать ошибки доступности, которые могут возникнуть, вы должны использовать один из формальных подходов hs.axuielement:allAttributeValues или hs.axuielement:attributeNames и hs.axuielement:attributeValue
- По умолчанию, hs.axuielement:allAttributeValues не будет включать пары ключ-значение, для которых атрибут (ключ) существует для элемента, но не имеет назначенного значения (nil) в данный момент. Это связано с тем, что значение
nilпредотвращает сохранение ключа в возвращаемой таблице. См. hs.axuielement:allAttributeValues для получения подробностей и обходных путей.
Итерация по дочерним элементам (AXChildren):
-
for i,v in ipairs(object) do ... end— это сокращение дляfor i,v in pairs(object:attributeValue("AXChildren") or {}) do ... end- Обратите внимание, что
object:attributeValue("AXChildren")может вернуть nil, если объект не имеет атрибутаAXChildren; сокращение не имеет этого ограничения.
- Обратите внимание, что
-
#object— это сокращение для#object:attributeValue("AXChildren") -
object[i]— это сокращение дляobject:attributeValue("AXChildren")[i]- Если необходимо обнаруживать ошибки доступности, которые могут возникнуть, вы должны использовать формальный метод hs.axuielement:attributeValue для получения атрибута "AXChildren".
Действия (hs.axuielement:actionNames):
-
object:do<action>()— это сокращение дляobject:performAction(action)- См. hs.axuielement:performAction для описания возвращаемых значений и hs.axuielement:actionNames для получения списка поддерживаемых элементом действий.
Атрибуты с параметрами:
-
object:<attribute>WithParameter(value)— это сокращение для `object:parameterizedAttributeValue(attribute, value)`-
См. hs.axuielement:parameterizedAttributeValue для описания возвращаемых значений и hs.axuielement:parameterizedAttributeNames для получения списка поддерживаемых элементом параметризованных значений
-
Конкретное значение, необходимое для каждого параметризованного атрибута, отличается и часто зависит от приложения, поэтому требует некоторого экспериментирования. Примечания относительно идентифицированных типов параметров и размышления по некоторым, которые ещё исследуются, будут предоставлены в Википедии Hammerspoon, надеюсь, вскоре после того, как этот модуль станет частью выпуска Hammerspoon.
-
Подмодули
Обзор API
- Константы — полезные значения, которые нельзя изменить
- actions
- attributes
- orientations
- parameterizedAttributes
- roles
- rulerMarkers
- sortDirections
- subroles
- units
- Функции — API-вызовы, предлагаемые непосредственно расширением
- Конструкторы — API-вызовы, которые возвращают объект, обычно тот, который предлагает API-методы
- Методы — API-вызовы, которые могут быть выполнены только на объекте, возвращённом конструктором
- actionDescription
- actionNames
- allAttributeValues
- allDescendantElements
- asHSApplication
- asHSWindow
- attributeNames
- attributeValue
- attributeValueCount
- buildTree
- childrenWithRole
- copy
- elementAtPosition
- elementSearch
- isAttributeSettable
- isValid
- matchesCriteria
- parameterizedAttributeNames
- parameterizedAttributeValue
- path
- performAction
- pid
- setAttributeValue
- setTimeout
Документация API
Константы
actions
| Подпись | hs.axuielement.actions[] |
|---|---|
| Тип | Константа |
| Описание |
Таблица общих имён действий объектов доступности, предоставленная для справки. |
| Примечания |
|
| Источник | extensions/axuielement/libaxuielement.m строка 966 |
attributes
| Подпись | hs.axuielement.attributes[] |
|---|---|
| Тип | Константа |
| Описание |
Таблица общих имён атрибутов объектов доступности, которые могут быть использованы с hs.axuielement:elementSearch или hs.axuielement:matchesCriteria в качестве ключей в аргументе критериев сопоставления. |
| Примечания |
|
| Источник | extensions/axuielement/libaxuielement.m строка 743 |
orientations
| Подпись | hs.axuielement.orientations[] |
|---|---|
| Тип | Константа |
| Описание |
Таблица типов ориентации, которые могут быть использованы с hs.axuielement:elementSearch или hs.axuielement:matchesCriteria в качестве значений атрибута "AXOrientation" в аргументе критериев сопоставления. |
| Примечания |
|
| Источник | extensions/axuielement/libaxuielement.m строка 1127 |
parameterizedAttributes
| Подпись | hs.axuielement.parameterizedAttributes[] |
|---|---|
| Тип | Константа |
| Описание |
Таблица общих имён параметризованных атрибутов объектов доступности, предоставленная для справки. |
| Примечания |
|
| Источник | extensions/axuielement/libaxuielement.m строка 926 |
роли
| Подпись | hs.axuielement.roles[] |
|---|---|
| Тип | Константа |
| Описание |
Таблица общих ролей объектов доступности, которые можно использовать с hs.axuielement:elementSearch или hs.axuielement:matchesCriteria в качестве значений атрибута «AXRole» в аргументе критериев соответствия. |
| Примечания |
|
| Источник | extensions/axuielement/libaxuielement.m строка 990 |
маркеры линейки
| Подпись | hs.axuielement.rulerMarkers[] |
|---|---|
| Тип | Константа |
| Описание |
Таблица типов маркеров линейки, которые можно использовать с hs.axuielement:elementSearch или hs.axuielement:matchesCriteria в качестве значений атрибута «AXMarkerType» в аргументе критериев соответствия. |
| Примечания |
|
| Источник | extensions/axuielement/libaxuielement.m строка 1159 |
направления сортировки
| Подпись | hs.axuielement.sortDirections[] |
|---|---|
| Тип | Константа |
| Описание |
Таблица типов направлений сортировки, которые можно использовать с hs.axuielement:elementSearch или hs.axuielement:matchesCriteria в качестве значений атрибута «AXSortDirection» в аргументе критериев соответствия. |
| Примечания |
|
| Источник | extensions/axuielement/libaxuielement.m строка 1143 |
подроли
| Подпись | hs.axuielement.subroles[] |
|---|---|
| Тип | Константа |
| Описание |
Таблица общих подролей объектов доступности, которые можно использовать с hs.axuielement:elementSearch или hs.axuielement:matchesCriteria в качестве значений атрибута «AXSubrole» в аргументе критериев соответствия. |
| Примечания |
|
| Источник | extensions/axuielement/libaxuielement.m строка 1067 |
единицы измерения
| Подпись | hs.axuielement.units[] |
|---|---|
| Тип | Константа |
| Описание |
Таблица типов единиц измерения, которые можно использовать с hs.axuielement:elementSearch или hs.axuielement:matchesCriteria в качестве значений атрибутов, указывающих типы единиц измерения (например, «AXUnits», «AXHorizontalUnits» и «AXVerticalUnits») в аргументе критериев соответствия. |
| Примечания |
|
| Источник | extensions/axuielement/libaxuielement.m строка 1180 |
Функции
функция поиска критериев
| Подпись | hs.axuielement.searchCriteriaFunction(criteria) -> function |
|---|---|
| Тип | Функция |
| Описание |
Возвращает функцию для использования с hs.axuielement:elementSearch, которая использует hs.axuielement:matchesCriteria с указанными критериями. |
| Параметры |
|
| Возвращаемое значение |
|
| Источник | extensions/axuielement/axuielement.lua строка 464 |
Конструкторы
элемент приложения
| Подпись | hs.axuielement.applicationElement(applicationObject) -> axuielementObject |
|---|---|
| Тип | Конструктор |
| Описание |
Возвращает верхнеуровневый объект доступности для приложения, указанного объектом |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/axuielement/libaxuielement.m строка 98 |
элемент приложения для PID
| Подпись | hs.axuielement.applicationElementForPID(pid) -> axuielementObject |
|---|---|
| Тип | Конструктор |
| Описание |
Возвращает верхнеуровневый объект доступности для приложения с указанным идентификатором процесса. |
| Параметры |
|
| Возвращаемое значение |
|
| Источник | extensions/axuielement/libaxuielement.m строка 144 |
элемент системы в позиции
| Подпись | hs.axuielement.systemElementAtPosition(x, y | pointTable) -> axuielementObject |
|---|---|
| Тип | Конструктор |
| Описание |
Возвращает объект доступности в указанной позиции на экране. Левый верхний угол основного экрана — 0, 0. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/axuielement/axuielement.lua строка 86 |
элемент всей системы
| Подпись | hs.axuielement.systemWideElement() -> axuielementObject |
|---|---|
| Тип | Конструктор |
| Описание |
Возвращает объект доступности, предоставляющий доступ к системным атрибутам. |
| Параметры |
|
| Возвращаемое значение |
|
| Источник | extensions/axuielement/libaxuielement.m строка 126 |
windowElement
| Signature | hs.axuielement.windowElement(windowObject) -> axuielementObject |
|---|---|
| Type | Constructor |
| Description |
Возвращает объект доступности для окна, указанного объектом |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/axuielement/libaxuielement.m строка 70 |
Methods
actionDescription
| Signature | hs.axuielement:actionDescription(action) -> string | nil, errString |
|---|---|
| Type | Method |
| Description |
Возвращает локализованное описание действия указанного объекта доступности. |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/axuielement/libaxuielement.m строка 254 |
actionNames
| Signature | hs.axuielement:actionNames() -> table | nil, errString |
|---|---|
| Type | Method |
| Description |
Возвращает список всех действий, которые может выполнить указанный объект доступности. |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/axuielement/libaxuielement.m строка 221 |
allAttributeValues
| Signature | hs.axuielement:allAttributeValues([includeErrors]) -> table | nil, errString |
|---|---|
| Type | Method |
| Description |
Возвращает таблицу, содержащую пары «ключ-значение» для всех атрибутов объекта доступности. |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/axuielement/libaxuielement.m строка 315 |
allDescendantElements
| Signature | hs.axuielement:allDescendantElements(callback, [withParents]) -> elementSearchObject |
|---|---|
| Type | Method |
| Description |
Запрос объекта доступности для всех дочерних объектов доступности и их потомков. |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/axuielement/axuielement.lua строка 502 |
asHSApplication
| Signature | hs.axuielement:asHSApplication() -> hs.application object | nil |
|---|---|
| Type | Method |
| Description |
Если элемент относится к приложению, вернуть объект |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/axuielement/libaxuielement.m строка 645 |
asHSWindow
| Signature | hs.axuielement:asHSWindow() -> hs.window object | nil |
|---|---|
| Type | Method |
| Description |
Если элемент относится к окну, вернуть объект |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/axuielement/libaxuielement.m строка 680 |
attributeNames
| Signature | hs.axuielement:attributeNames() -> table | nil, errString |
|---|---|
| Type | Method |
| Description |
Возвращает список всех атрибутов, поддерживаемых указанным объектом доступности. |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/axuielement/libaxuielement.m строка 188 |
attributeValue
| Signature | hs.axuielement:attributeValue(attribute) -> value | nil, errString |
|---|---|
| Type | Method |
| Description |
Возвращает значение атрибута объекта доступности. |
| Parameters |
|
| Returns |
|
| Source | extensions/axuielement/libaxuielement.m строка 286 |
attributeValueCount
| Signature | hs.axuielement:attributeValueCount(attribute) -> integer | nil, errString |
|---|---|
| Type | Method |
| Description |
Возвращает количество элементов массива значения атрибута объекта доступности. |
| Parameters |
|
| Returns |
|
| Source | extensions/axuielement/libaxuielement.m строка 365 |
buildTree
| Подпись | hs.axuielement:buildTree(callback, [depth], [withParents]) -> elementSearchObject |
|---|---|
| Тип | Метод |
| Описание |
Захватывает всю доступную информацию об объекте доступности и его потомках и возвращает её в таблице для проверки. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/axuielement/axuielement.lua строка 478 |
childrenWithRole
| Подпись | hs.axuielement:childrenWithRole(role) -> table |
|---|---|
| Тип | Метод |
| Описание |
Возвращает таблицу, содержащую только тех непосредственных потомков элемента, которые выполняют указанную роль. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/axuielement/axuielement.lua строка 972 |
copy
| Подпись | hs.axuielement:copy() -> axuielementObject |
|---|---|
| Тип | Метод |
| Описание |
Возвращает дубликат ссылки userdata на объект доступности. |
| Параметры |
|
| Возвращаемое значение |
|
| Источник | extensions/axuielement/libaxuielement.m строка 171 |
elementAtPosition
| Подпись | hs.axuielement:elementAtPosition(x, y | pointTable) -> axuielementObject | nil, errString |
|---|---|
| Тип | Метод |
| Описание |
Возвращает объект доступности в указанной позиции на экране. Левый верхний угол основного экрана имеет координаты 0, 0. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/axuielement/libaxuielement.m строка 533 |
elementSearch
| Signature | hs.axuielement:elementSearch(callback, [criteria], [namedModifiers]) -> elementSearchObject |
|---|---|
| Type | Method |
| Description |
Поиск и создание таблицы элементов доступности для атрибутов и потомков этого объекта на основе заданных критериев. |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/axuielement/axuielement.lua line 766 |
isAttributeSettable
| Signature | hs.axuielement:isAttributeSettable(attribute) -> boolean | nil, errString |
|---|---|
| Type | Method |
| Description |
Возвращает, можно ли изменить заданный атрибут объекта доступности. |
| Parameters |
|
| Returns |
|
| Source | extensions/axuielement/libaxuielement.m строка 421 |
isValid
| Signature | hs.axuielement:isValid() -> boolean | nil, errString |
|---|---|
| Type | Method |
| Description |
Возвращает, является ли указанный объект доступности по-прежнему допустимым. |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/axuielement/libaxuielement.m строка 447 |
matchesCriteria
| Signature | hs.axuielement:matchesCriteria(criteria) -> boolean |
|---|---|
| Type | Method |
| Description |
Возвращает true, если axuielementObject соответствует заданным критериям, или false, если не соответствует. |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/axuielement/axuielement.lua строка 265 |
parameterizedAttributeNames
| Signature | hs.axuielement:parameterizedAttributeNames() -> table | nil, errString |
|---|---|
| Type | Method |
| Description |
Возвращает список всех параметризованных атрибутов, поддерживаемых указанным объектом доступности. |
| Parameters |
|
| Returns |
|
| Source | extensions/axuielement/libaxuielement.m строка 391 |
parameterizedAttributeValue
| Signature | hs.axuielement:parameterizedAttributeValue(attribute, parameter) -> value | nil, errString |
|---|---|
| Type | Method |
| Description |
Возвращает значение параметризованного атрибута объекта доступности. |
| Parameters |
|
| Returns |
|
| Notes |
|
| Source | extensions/axuielement/libaxuielement.m строка 582 |
путь
| Подпись | hs.axuielement:path() -> table |
|---|---|
| Тип | Метод |
| Описание |
Возвращает таблицу axuielements, отслеживающих это объект через его родительские объекты до корневого объекта для этого элемента, скорее всего, объект приложения или системный объект. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/axuielement/axuielement.lua строка 211 |
performAction
| Подпись | hs.axuielement:performAction(action) -> axuielement | false | nil, errString |
|---|---|
| Тип | Метод |
| Описание |
Запрашивает, чтобы указанный объект доступности выполнил указанное действие. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/axuielement/libaxuielement.m строка 503 |
pid
| Подпись | hs.axuielement:pid() -> integer | nil, errString |
|---|---|
| Тип | Метод |
| Описание |
Возвращает идентификатор процесса, связанный с указанным объектом доступности. |
| Параметры |
|
| Возвращаемое значение |
|
| Источник | extensions/axuielement/libaxuielement.m строка 478 |
setAttributeValue
| Подпись | hs.axuielement:setAttributeValue(attribute, value) -> axuielementObject | nil, errString |
|---|---|
| Тип | Метод |
| Описание |
Устанавливает атрибут объекта доступности в указанное значение. |
| Параметры |
|
| Возвращаемое значение |
|
| Источник | extensions/axuielement/libaxuielement.m строка 617 |
setTimeout
| Подпись | hs.axuielement:setTimeout(value) -> axuielementObject | nil, errString |
|---|---|
| Тип | Метод |
| Описание |
Устанавливает значение таймаута, используемое при запросах доступности, выполненных из этого элемента. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/axuielement/libaxuielement.m строка 710 |
© 2014–2017 Hammerspoon contributors
Licensed under the MIT License.
https://www.hammerspoon.org/docs/hs.axuielement.html