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

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

Оффлайн Radik [?]

  • Новичок
  • *
  • Сообщений: 70
  • Репутация: 1
    • Награды
Radik  [?]
Цитировать
массив из 100 строк
До массива вы не доходите. У вас не создаётся $oElement. Подозреваю, что "ultraGrid1" - это не имя таблицы.


Добавлено: Декабрь 05, 2017, 19:11:19
Попробуйте этот код
Код: AutoIt [Выделить]
#include <UIAutomate.au3>

$hWnd = WinActivate("Программа")
$oParent = _UIA_GetElementFromHandle($hWnd)
$oCond1 = _UIA_CreatePropertyCondition("Name", "ultraGrid1")
$oCond2 = _UIA_CreatePropertyCondition("ControlType", $UIA_TableControlTypeId)
$oCond = _UIA_CreateLogicalCondition($oCond1, "AND", $oCond2)
$oElement = _UIA_GetElementFromCondition($oParent, $oCond)
If IsObj($oElement) Then ConsoleWrite("Найден" & @CRLF)

Если напишет ошибку 0х80004005, то ничего сделать не получится. Слишком большое количество элементов в окне.

Спасибо! Помогло!

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

Re: UIAutomate - автоматизация нестандартных элементов GUI
« Ответ #285 Отправлен: Декабрь 06, 2017, 08:01:07 »

Онлайн InnI [?]

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

  • Автор темы
  • Репутация: 992
    • Награды
  • Версия AutoIt: 3.3.14.0
Убрал лишнее создание объекта UIAutomation в функции _UIA_FindAllElements (соответственно и вывод ошибки).
Версию не менял.

Оффлайн Hikari [?]

  • Новичок
  • *
  • Сообщений: 22
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Inni, в функции _UIA_FindAllElements создается по два объекта для каждой ссылки
Вот простенький код для проверки в уже запущенном браузере с нужными ключами
Код: AutoIt [Выделить]
Func Check()
MsgBox(0,"","check")
;WaitFullLoad()
Local $testarray = _UIA_FindAllElements($BROWSER,"ControlType",50005)
For $in = 1 to $testarray[0]
MsgBox(0,"",_UIA_ElementGetPropertyValue($testarray[$in],"Name"))
Next



EndFunc
 

на любом html-файле(даже на составленном мной лично) выдает по два раза каждую ссылку

Онлайн InnI [?]

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

  • Автор темы
  • Репутация: 992
    • Награды
  • Версия AutoIt: 3.3.14.0
Hikari  [?]
Цитировать
создается по два объекта для каждой ссылки
Искать нужно не от главного окна, а от элемента отображения страницы
Код: AutoIt [Выделить]
$BROWSER = _UIA_GetElementFromHandle(ControlGetHandle("[RegexpTitle: - Opera]", "", "Chrome_RenderWidgetHostHWND1"))
Check()


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

Re: UIAutomate - автоматизация нестандартных элементов GUI
« Ответ #288 Отправлен: Январь 14, 2018, 20:37:31 »

Оффлайн Hikari [?]

  • Новичок
  • *
  • Сообщений: 22
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Скажите, пожалуйста, как сделать функцию , которая будет дожидаться полной прогрузки страницы в браузере?

Онлайн InnI [?]

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

  • Автор темы
  • Репутация: 992
    • Награды
  • Версия AutoIt: 3.3.14.0
Если содержимое страницы известно, то ждать последнего элемента. В противном случае, можно отслеживать изменения кнопки "обновить/остановить" в панели браузера.

Оффлайн tryinfinity [?]

  • Новичок
  • *
  • Сообщений: 26
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Столкнулся с проблемой, Inspect не видит в приложении объекты, пишет "Отказано в доступе".
hWnd находится, но даже Send("{ENTER}") не работает.
Может кто сталкивался с подобным?

Онлайн InnI [?]

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

  • Автор темы
  • Репутация: 992
    • Награды
  • Версия AutoIt: 3.3.14.0
tryinfinity  [?]
Цитировать
пишет "Отказано в доступе"
Вероятно, приложение запущено с правами администратора. Если так, то и Inspect и скрипт должны иметь такие же права.

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

Re: UIAutomate - автоматизация нестандартных элементов GUI
« Ответ #292 Отправлен: Март 14, 2018, 18:23:58 »

Оффлайн tryinfinity [?]

  • Новичок
  • *
  • Сообщений: 26
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Спасибо, помогло.

Оффлайн roma351234567890 [?]

  • Новичок
  • *
  • Сообщений: 8
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Имеется вот такой элемент меню, как по нему кликнуть, и вообще, реально ли это? Родительский, дочерний элемент не обнаружен.


(нажмите для показа/скрытия)


(нажмите для показа/скрытия)
« Последнее редактирование: Май 06, 2018, 15:24:00 от roma351234567890 »

Онлайн InnI [?]

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

  • Автор темы
  • Репутация: 992
    • Награды
  • Версия AutoIt: 3.3.14.0
roma351234567890  [?]
Цитировать
Имеется вот такой элемент меню
UIA_PaneControlTypeId - это панель, просто вы воспринимаете её, как меню. А кликать в панель можно по координатам. Т.к. у этого элемента есть класс (TCustomActionPopupMenuEx), то можно попробовать ControlClick (информацию смотрите в Au3Info). Но если вам нужно через UIAutomate, то попробуйте так
Код: AutoIt [Выделить]
#include <UIAutomate.au3>

; координаты относительно левого верхнего угла панели
Global $X = 100, $Y = 10

; дескриптор панели меню - данные получаем из Au3Info
$hCtrl = WinGetHandle("[class:TCustomActionPopupMenuEx]")
; $hCtrl = ControlGetHandle("Заголовок окна", "", "TCustomActionPopupMenuEx1")

; элемент на основе дескриптора панели
$oPanel = _UIA_GetElementFromHandle($hCtrl)

; клик по координатам панели
_UIA_ElementMouseClick($oPanel, "", $X, $Y)

« Последнее редактирование: Май 06, 2018, 16:04:33 от InnI »

Оффлайн roma351234567890 [?]

  • Новичок
  • *
  • Сообщений: 8
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Благодарю, работает, а через ControlClick никак не шло.

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

Re: UIAutomate - автоматизация нестандартных элементов GUI
« Ответ #296 Отправлен: Май 07, 2018, 00:01:44 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
0 Ответов
85763 Просмотров
Последний ответ Сентябрь 22, 2010, 22:13:33
от CreatoR
18 Ответов
13748 Просмотров
Последний ответ Сентябрь 18, 2011, 20:49:26
от Zalman1980
9 Ответов
5571 Просмотров
Последний ответ Март 12, 2012, 00:33:05
от cobra2029
0 Ответов
2010 Просмотров
Последний ответ Май 07, 2012, 15:00:44
от Dedullika
18 Ответов
5022 Просмотров
Последний ответ Октябрь 17, 2012, 00:07:30
от Kaster
0 Ответов
2050 Просмотров
Последний ответ Декабрь 02, 2012, 10:15:22
от madmasles
6 Ответов
3529 Просмотров
Последний ответ Декабрь 10, 2012, 11:30:14
от Zergii
3 Ответов
2048 Просмотров
Последний ответ Декабрь 21, 2014, 19:24:21
от brain
8 Ответов
2451 Просмотров
Последний ответ Ноябрь 26, 2015, 17:54:56
от Garrett
22 Ответов
2818 Просмотров
Последний ответ Июнь 09, 2017, 01:12:34
от Alofa