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

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

Оффлайн tryinfinity [?]

  • Новичок
  • *
  • Сообщений: 29
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Не могу найти нужный элемент (кнопку), т.к. у нужной кнопки видимо все свойства совпадают с кнопкой свертывания окна, единственное отличие что нашел, это по AutomationId, если указываю текущее значение из проекта, то нажимается как надо, однако при перезапуске программы, это Id меняется.
Как можно решить проблему?
Скрин инспекта:
https://clip2net.com/s/3V4Qa4L

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

Re: UIAutomate - автоматизация нестандартных элементов GUI
« Ответ #300 Отправлен: Июнь 26, 2018, 16:31:41 »

Оффлайн InnI [?]

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

  • Автор темы
  • Репутация: 1006
    • Награды
  • Версия AutoIt: 3.3.14.0
tryinfinity  [?]
Цитировать
Как можно решить проблему?
Попробуйте по индексу (аналогично instance). Найдите все кнопки и определите индекс нужной. В дальнейшем обращайтесь к ней по индексу (надеюсь, приложение всегда создаёт элементы в одинаковом порядке)
Код: AutoIt [Выделить]
; поиск всех кнопок
$aBtns = _UIA_FindAllElements($oParent, "ControlType", $UIA_ButtonControlTypeId)

; цикл только для определения индекса - в рабочем коде не нужен
For $i = 1 To $aBtns[0]
  ConsoleWrite($i & " : " & _UIA_ElementGetPropertyValue($aBtns[$i], "AutomationId") & @CRLF)
Next

; нажатие кнопки с индексом 4
_UIA_ElementDoDefaultAction($aBtns[4])


Оффлайн tryinfinity [?]

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

Оффлайн InnI [?]

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

  • Автор темы
  • Репутация: 1006
    • Награды
  • Версия AutoIt: 3.3.14.0
tryinfinity  [?]
Цитировать
от содержимого этих ListBox меняется индекс нужной мне кнопки
Можно ещё к координатам привязаться. Например, для кнопки в правом нижнем углу X и Y координаты будут максимальными относительно других кнопок.
Если ничего не поможет, ищите её, как картинку ;)

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

Re: UIAutomate - автоматизация нестандартных элементов GUI
« Ответ #303 Отправлен: Июнь 26, 2018, 19:00:59 »

Оффлайн tryinfinity [?]

  • Новичок
  • *
  • Сообщений: 29
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
tryinfinity  [?]
Цитировать
от содержимого этих ListBox меняется индекс нужной мне кнопки
Можно ещё к координатам привязаться. Например, для кнопки в правом нижнем углу X и Y координаты будут максимальными относительно других кнопок.
Если ничего не поможет, ищите её, как картинку ;)
А можно ли присвоить значение элементу по нескольким свойствам или значениям?

Оффлайн InnI [?]

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

  • Автор темы
  • Репутация: 1006
    • Награды
  • Версия AutoIt: 3.3.14.0
tryinfinity  [?]
Цитировать
присвоить значение элементу по нескольким свойствам или значениям?
Вы хотите сказать "найти элемент по нескольким свойствам и значениям"? Да можно.

Вариант 1.
Через _UIA_FindAllElements найти все элементы с общим свойством. Затем через _UIA_FindElementsInArray отфильтровывать ненужные свойства необходимое количество раз.

Вариант 2.
Через _UIA_CreatePropertyCondition и _UIA_CreateLogicalCondition создать одно логическое условие. Затем через _UIA_GetElementFromCondition получить этот элемент или через _UIA_FindAllElementsEx найти все элементы, подходящие под это логическое условие.

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

Re: UIAutomate - автоматизация нестандартных элементов GUI
« Ответ #305 Отправлен: Июнь 26, 2018, 19:51:18 »

 

Похожие темы

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