Если вы можете кликнуть этот элемент мышью и получить реакцию, то посмотрите в дереве Inspect родителя этого текста. Возможно, это одноимённая гиперссылка, которую можно "кликнуть" через DefaultAction.ControlType: UIA_TextControlTypeId
Проверьте и убедитесь. Для этого в архиве есть утилита Inspect.Мне кажется это невозможно
InnI сказал(а):sterro_sasha [?]Проверьте и убедитесь. Для этого в архиве есть утилита Inspect.
Вообще не видеть текст она не может. Например, текст ссылок она видит. Вот конкретно вашего контрола может и не видеть.Утилита текст вообще не видит
$hWnd = WinGetHandle('test.htm') ;заголовок окна
Sleep(2000)
;UIA_EditControlTypeId
$oParent = _UIA_GetElementFromHandle($hWnd)
$oElement = _UIA_GetControlTypeElement($oParent, "UIA_EditControlTypeId", "поле") ;извлекаем текст указанного контрола с именем.. (может глупость написал))
ConsoleWrite(_UIA_ElementGetPropertyValue($oElement, "Name") & @CRLF)
InnI сказал(а):sterro_sasha [?]Вообще не видеть текст она не может. Например, текст ссылок она видит. Вот конкретно вашего контрола может и не видеть.
Убедитесь, что Chrome запущен с параметром --force-renderer-accessibility и что утилита видит хоть какой-нибудь элемент на странице. Затем посмотрите на нужный вам - если обнаружит текст, значит его можно прочитать, если нет - значит нет.
$oParent = _UIA_GetElementFromHandle($hWnd)
$control = _UIA_GetControlTypeElement($oParent, "UIA_EditControlTypeId", "поле", "LocalizedControlType")
;_UIA_ElementMouseClick($control)
MsgBox(64,"",_UIA_ElementGetPropertyValue($control,"value.value"))
;Проверка авторизации
$UIA_DefaultWaitTime = 5
$oElement = _UIA_WaitControlTypeElement($oParent, "UIA_TextControlTypeId", "Вы ввели неправильный логин или пароль.")
If IsObj($oElement) Then
$oElement = _UIA_GetControlTypeElement($oParent, "UIA_TextControlTypeId", "ОК")
_UIA_ElementDoDefaultAction($oElement)
ConsoleWriteError("Указан неверный логин или пароль!")
Попробуйте обновить $oParent - вызовите повторно функцию, его создающую.такой текст не найден
Ну это же пример. Не нравится мышь - используйте DoDefaultAction (на версии Chrome 74.0.3729.169 работает даже в свёрнутом окне)что бы открыть новую вкладку, используется мышь
#include <UIAutomate.au3>
$oParent = _UIA_GetElementFromHandle(WinGetHandle("[RegexpTitle: - Google Chrome]"))
$oButton = _UIA_GetControlTypeElement($oParent, "UIA_ButtonControlTypeId", "Новая вкладка")
_UIA_ElementDoDefaultAction($oButton)
Помогло.Попробуйте обновить $oParent - вызовите повторно функцию, его создающую.
_UIA_ElementDoDefaultAction($oButton)
У меня при наведении на вкладку Inspect показывает UIA_PaneControlTypeId.Inspect при наведении показывает UIA_ToolTipControlTypeId и текст
#include <UIAutomate.au3>
$oParent = _UIA_GetElementFromHandle(WinGetHandle("[RegexpTitle: - Google Chrome]"))
$oTabYandex = _UIA_GetControlTypeElement($oParent, "UIA_TabItemControlTypeId", "Яндекс")
$oTabGoogle = _UIA_GetControlTypeElement($oParent, "UIA_TabItemControlTypeId", "Google")
_UIA_ElementDoDefaultAction($oTabYandex)
Sleep(1000)
_UIA_ElementDoDefaultAction($oTabGoogle)
Sleep(1000)
_UIA_ElementDoDefaultAction($oTabYandex)
Sleep(1000)
_UIA_ElementDoDefaultAction($oTabGoogle)
$oElement = _UIA_GetControlTypeElement($oParent, "UIA_EditControlTypeId", "loginEdit-el", "AutomationId")
Можно и так. Если не находит, то, опять же, попробуйте обновить $oParent. Если не поможет - пробуйте функцию _UIA_WaitControlTypeElement.Не так ведь?
Вы это уже делали в предыдущем сообщении: "loginEdit-el", "AutomationId"как найти поле логина по любому параметру, кроме текста?
Просто последним параметром добавляете Trueнужно добавить $fInStr, какое значение ему надо присвоить?) В каком месте функции?)
$oElement = _UIA_GetControlTypeElement($oParent, "UIA_EditControlTypeId", "inEdit", "AutomationId", True) ; inEdit часть от loginEdit-el
С помощью UIAutomate - никак. Единственно, чем она может помочь - это найти координаты элемента через функцию _UIA_ElementGetBoundingRectangle. А дальше рисуйте рамку по координатам любым известным вам способом.Как нарисовать красную рамку вокруг элемента