astanid
Я вам ещё раз повторю: интерфейс UIAutomation не работает с кодом страницы. С кодом работает браузер, который на его основе создаёт элементы. И вот с этими элементами уже работает IUIAutomation. Фактически страница представляется, как окно GUI с кнопками, полями ввода, списками и т.д. Поэтому нужно использовать Inspect.
Ещё есть свойство "LegacyIAccessible.State" - это набор флагов состояния элемента. Узнать состояние On/Off можно так
Я вам ещё раз повторю: интерфейс UIAutomation не работает с кодом страницы. С кодом работает браузер, который на его основе создаёт элементы. И вот с этими элементами уже работает IUIAutomation. Фактически страница представляется, как окно GUI с кнопками, полями ввода, списками и т.д. Поэтому нужно использовать Inspect.
Если вы хотите работать с CheckBox, то и искать нужно CheckBox (UIA_CheckBoxControlTypeId), а не его текст. Запускаете Inspect и находите CheckBox. Смотрите, какое у него имя (почти всегда оно совпадает с его текстом). А за "выделение" отвечает свойство "Toggle.ToggleState": 0 - выключен, 1 - включёнКак узнать выделен или нет чекбокс ?
Код:
#include <UIAutomate.au3>
$oParent = _UIA_GetElementFromHandle(ControlGetHandle("[class:IEFrame]", "", "Internet Explorer_Server1"))
$oElement = _UIA_WaitControlTypeElement($oParent, "UIA_CheckBoxControlTypeId", "Outdated or irrelevant")
$iState = _UIA_ElementGetPropertyValue($oElement, "Toggle.ToggleState")
ConsoleWrite($iState & @CRLF)
Ещё есть свойство "LegacyIAccessible.State" - это набор флагов состояния элемента. Узнать состояние On/Off можно так
Код:
$iState = _UIA_ElementGetPropertyValue($oElement, "LegacyIAccessible.State")
If BitAND($iState, 0x10) Then
ConsoleWrite("On" & @CRLF)
Else
ConsoleWrite("Off" & @CRLF)
EndIf