Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно. Необходимо обновить браузер или попробовать использовать другой.
UIAutomate - автоматизация нестандартных элементов GUI
Firefox перечисляет все вкладки, поэтому объектов может быть много. Попробуйте с одной вкладкой.
Если не получится - сообщите версию Firefox.
Также убедитесь, что Firefox не запущен с правами администратора.
Может быть тогда на примере обычного блокнота ? Скажем, в текстовом поле написано "я люблю манную кашу", ищем вначале текст "манную", найдя элемент интерфейса с данным куском текста, копируем весь текст из элемента, а потом жмем кнопку "Справка" в верхней панели.
#include <UIAutomate.au3>
; окно блокнота
$oNotepad = _UIA_GetElementFromHandle(WinGetHandle("[class:Notepad]"))
; поиск по части текста
$aElements = _UIA_FindAllElements($oNotepad)
For $i = 1 To $aElements[0]
$sText = _UIA_ElementGetPropertyValue($aElements[$i], "Value.Value")
If StringInStr($sText, "манную") Then ExitLoop
Next
ConsoleWrite($sText & @CRLF)
; Если заранее известен тип элемента, то лучше так
$oEdit = _UIA_GetControlTypeElement($oNotepad, "UIA_EditControlTypeId", "манную", "Value.Value:", True)
; получение всего текста
$sText = _UIA_ElementGetPropertyValue($oEdit, "Value.Value")
ConsoleWrite($sText & @CRLF)
; пункт меню "Справка"
$oItem = _UIA_GetControlTypeElement($oNotepad, "UIA_MenuItemControlTypeId", "Справка")
_UIA_ElementMouseClick($oItem)
Пожалуйста, будьте так, любезны, помогите закрыть окно с заголовком "Kaspersky Internet Security", текстом "Срок действия лицензии истекает через 13 дней. Вы можете продлить срок действия лицензии. Если вы уже продлили срок действия лицензии, пожалуйста, активируйте программу сейчас.", кнопкой "Продлить срок действия лицензии", кнопкой "Ввести код активации", в верхнем правом углу активна кнопка "Свернуть", в верхнем правом углу активна кнопка "Закрыть", в верхнем правом углу НЕ активна кнопка "Развернуть"
Отчёты утилит Inspect_W7.exe и Inspect_W10.exe прилагаю
Я так понимаю, что изменить заголовок вкладки никак нельзя при помощи UIAutomate? Value.value есть, заголовок легко считывается при помощи _UIA_GetControlTypeElement и _UIA_ElementGetPropertyValue($oElement, "Value.Value"), но вот свой поставить - никак. Перепробовал уже сотни раз. Стоит защита? Хотя функция _UIA_ElementTextSetValue вроде как возвращает успех.
Сообщение автоматически объединено:
Заголовок вкладки к сожалению поменять нельзя. Убил пару часов на поиск id, но в конце концов перебрав все, решил просто везде установить текст где только можно... и да - заголовок вкладки Chrome не меняется (но при этом легко считывается).
Код:
#include "UIAutomate.au3"
Opt("WinTitleMatchMode", 2)
Sleep(1000)
;Chrome должен быть запущен с ключем --force-renderer-accessibility
;Run("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" & " --force-renderer-accessibility")
$hWnd = WinGetHandle('[ACTIVE]') ;активный - Хром
$oParent = _UIA_GetElementFromHandle($hWnd)
;обычный режим перебора элементов
;(глобально проверяем вообще можно ли менять заголовок, по id вкладки ничего не меняется вообще)
$aElements = _UIA_FindAllElements($oParent)
For $i = 1 To $aElements[0]
_UIA_ElementTextSetValue($aElements[$i], "New text (title) for Google Chrome")
ConsoleWrite( _UIA_ElementGetPropertyValue($aElements[$i], "Value.Value") & @CRLF)
Next
;расширенный режим перебора элементов
$aElements = _UIA_FindAllElementsEx($oParent)
For $i = 1 To $aElements[0]
_UIA_ElementTextSetValue($aElements[$i], "New text (title) for Google Chrome")
ConsoleWrite( _UIA_ElementGetPropertyValue($aElements[$i], "Value.Value") & @CRLF)
Next
Сообщение автоматически объединено:
Библиотека супер!!! Подскажите пожалуйста, может ли работать _UIA_ElementTextSetValue, когда окно куда нужно ввести данные - неактивно? пока решения не нашел никакого
Сообщение автоматически объединено:
Ответ найден. Работает только с видимыми или НЕ свернутыми окнами. Увы. IUIAutomation с офф форума - тоже самое, хотя эти библиотеки используют одну и туже технологию, чего удивляться)