Автор Тема: UIAutomate - автоматизация нестандартных элементов GUI  (Прочитано 52203 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3071

  • Автор темы
  • Репутация: 815
    • Награды
  • Версия AutoIt: 3.3.14.0
astanid
Я вам ещё раз повторю: интерфейс UIAutomation не работает с кодом страницы. С кодом работает браузер, который на его основе создаёт элементы. И вот с этими элементами уже работает IUIAutomation. Фактически страница представляется, как окно GUI с кнопками, полями ввода, списками и т.д. Поэтому нужно использовать Inspect.

Цитировать
Как узнать выделен или нет чекбокс ?
Если вы хотите работать с CheckBox, то и искать нужно CheckBox (UIA_CheckBoxControlTypeId), а не его текст. Запускаете Inspect и находите CheckBox. Смотрите, какое у него имя (почти всегда оно совпадает с его текстом). А за "выделение" отвечает свойство "Toggle.ToggleState": 0 - выключен, 1 - включён
Код: AutoIt [Выделить]
#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 можно так
Код: AutoIt [Выделить]
$iState = _UIA_ElementGetPropertyValue($oElement, "LegacyIAccessible.State")
If BitAND($iState, 0x10) Then
  ConsoleWrite("On" & @CRLF)
Else
  ConsoleWrite("Off" & @CRLF)
EndIf


Русское сообщество AutoIt

Re: UIAutomate - автоматизация нестандартных элементов GUI
« Ответ #180 Отправлен: Декабрь 29, 2016, 22:49:58 »

Оффлайн astanid [?]

  • Новичок
  • *
  • Сообщений: 38
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Цитировать
Я вам ещё раз повторю: интерфейс UIAutomation не работает с кодом страницы.
спасибо. прочитать код страницы мне правда постоянно нужно - и как это сделать пока не придумал :(
http://autoit-script.ru/index.php?topic=23242.msg134428#new


« Последнее редактирование: Декабрь 30, 2016, 19:17:10 от astanid »

Оффлайн mr.Gbabak [?]

  • Новичок
  • *
  • Сообщений: 153
  • Репутация: 14
  • Пол: Мужской
    • Награды
А подскажите как работать с браузером Опера?
С IE проблем нет, все хорошо, но решил код переделать под оперу и все, ничего не могу найти. Ни одного элемента со страницы, ни элементов браузера!!!

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3071

  • Автор темы
  • Репутация: 815
    • Награды
  • Версия AutoIt: 3.3.14.0
mr.Gbabak
Цитировать
как работать с браузером Опера
Также, как с Google Chrome, Yandex Browser и подобными. Главное - запустить с параметром "--force-renderer-accessibility". А дальше см. пример в описании темы и кучу примеров на форуме. Кстати, все проблемы автоматизации Google Chrome вы ощутите и на Опере.

Русское сообщество AutoIt

Re: UIAutomate - автоматизация нестандартных элементов GUI
« Ответ #183 Отправлен: Январь 19, 2017, 11:58:28 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
0 Ответов
26028 Просмотров
Последний ответ Сентябрь 22, 2010, 22:13:33
от CreatoR
18 Ответов
11041 Просмотров
Последний ответ Сентябрь 18, 2011, 20:49:26
от Zalman1980
0 Ответов
2419 Просмотров
Последний ответ Ноябрь 20, 2011, 19:11:43
от ohos
9 Ответов
4336 Просмотров
Последний ответ Март 12, 2012, 00:33:05
от cobra2029
0 Ответов
1642 Просмотров
Последний ответ Май 07, 2012, 15:00:44
от Dedullika
18 Ответов
3710 Просмотров
Последний ответ Октябрь 17, 2012, 00:07:30
от Kaster
0 Ответов
1606 Просмотров
Последний ответ Декабрь 02, 2012, 10:15:22
от madmasles
6 Ответов
2764 Просмотров
Последний ответ Декабрь 10, 2012, 11:30:14
от Zergii
3 Ответов
1445 Просмотров
Последний ответ Декабрь 21, 2014, 19:24:21
от brain
8 Ответов
1521 Просмотров
Последний ответ Ноябрь 26, 2015, 17:54:56
от Garrett