Что нового

[Автоматизация] Autoit Window Info не видит кнопку

ZIDARAP

Новичок
Сообщения
7
Репутация
0
Здравствуйте. Много искал в сети ответ на этот вопрос, но так и не нашел :'(. Вообщем операция проста. Автоматизация установки приложения(в примере Java). Но при наведении прицелом на кнопку в установщике Autoit Window Info не считывает с нее ни visible text , ни класс. Недавно начал пользоваться данной программой, если кто знает объясните поподробнее, пожалуйста.Вообщем вот скрин, и фотка с телефона, чтобы было понятно, что именно кнопка не выделяется вообще.( на скрине не додумался как сделать :blum:).

P.s. Если тема уже есть,топорами не кидайтесь, я искал по форуму в поиске :IL_AutoIt_1: :IL_AutoIt_1: :laugh: :IL_AutoIt_1: :IL_AutoIt_1:
photo78202758_456239113
 

Вложения

  • 2017-03-06_21-48-12.png
    2017-03-06_21-48-12.png
    86.3 КБ · Просмотры: 27
Автор
Z

ZIDARAP

Новичок
Сообщения
7
Репутация
0
Вот фотка с телефона
 

Вложения

  • 233.jpg
    233.jpg
    114.2 КБ · Просмотры: 23

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
ZIDARAP
В этом примере нет необходимости что-либо искать
Код:
#RequireAdmin
Run("JavaSetup8u121.exe")
WinWaitActive("Java Setup - Welcome")
Send("{enter}")
WinWait("Java Setup - Complete")
WinClose("Java Setup - Complete")
Если же нужно изменить папку установки, то отправляете TAB или Shift+TAB нужное количество раз и ПРОБЕЛ для активации.
 
Автор
Z

ZIDARAP

Новичок
Сообщения
7
Репутация
0
InnI сказал(а):
ZIDARAP
В этом примере нет необходимости что-либо искать
Код:
#RequireAdmin
Run("JavaSetup8u121.exe")
WinWaitActive("Java Setup - Welcome")
Send("{enter}")
WinWait("Java Setup - Complete")
WinClose("Java Setup - Complete")
Если же нужно изменить папку установки, то отправляете TAB или Shift+TAB нужное количество раз и ПРОБЕЛ для активации.
m
Нет, оба варианта представленные выше не подойдут. Мне нужно знать, как отловить элементы управления
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
ZIDARAP

Предупреждение За нарушение общих правил (пункт В.2):
Старайтесь избегать “Over quoting” (преувеличенное цитирование) - цитируйте только необходимую часть сообщения, которая наилучшим образом подчеркнёт суть цитируемого.


С уважением, ваш Глобальный модератор.
 
Автор
Z

ZIDARAP

Новичок
Сообщения
7
Репутация
0
Посмотрел тему, не получается ничего, так как я и знаю то только пару команд, так как я новичок. Пожалуйста, объясните "по полочкам", что куда и как. Очень прошу


Добавлено:
Сообщение автоматически объединено:

Предложенный выше вариант(который просто по нажатию enter) работает, да. Но я хочу разобраться как именно работать в таких приложениях, если нужна более тщательная настройка. Help me please
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
ZIDARAP
хочу разобраться как именно работать в таких приложениях
В каких "таких"? В которых Au3Info не определяет элементы? Если да, то это зависит от технологии, которую использует окно для создания, отрисовки и обработки элементов. Данное конкретное окно создано на базе Internet Explorer. Следовательно с ним можно работать при помощи объекта IE также, как с браузером "Internet Explorer". Есть окна, созданные на QT, WPF, Java, Delphi, Visual Basic. Вы хотите знать, как работать со всем этим зоопарком сразу или с каждым "зверем" в отдельности?
 
Автор
Z

ZIDARAP

Новичок
Сообщения
7
Репутация
0
Для начало именно на данном примере, именно этого окна, а именно с работать с окнами созданные на базе Internet Explorer
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
ZIDARAP
на данном примере, именно этого окна
Код:
#RequireAdmin

#include <IE.au3>

; получаем дескриптор элемента Internet Explorer_Server
$hCtrl = ControlGetHandle("Java Setup - Welcome", "", "Internet Explorer_Server1")
; создаём объект IE при помощи недокументированной функции из IE.au3
$oIE = __IEControlGetObjFromHWND($hCtrl)
; получаем содержимое "страницы"
$Text = _IEDocReadHTML($oIE)
; сохраняем код "страницы" в файл
FileWrite("Doc.html", $Text)
; разбираем код страницы...

; находим кнопку
$oBtn = _IEGetObjById($oIE, "installBtn")
; кликаем кнопку
_IEAction($oBtn, "click")
 
Автор
Z

ZIDARAP

Новичок
Сообщения
7
Репутация
0
Выполнил до этого шага.
Код:
#RequireAdmin

#include <IE.au3>
Run('C:\Users\zidarap\Desktop\JavaSetup8u121.exe')

; получаем дескриптор элемента Internet Explorer_Server
$hCtrl = ControlGetHandle("Java Setup - Welcome", "", "Internet Explorer_Server1")
; создаём объект IE при помощи недокументированной функции из IE.au3
$oIE = __IEControlGetObjFromHWND($hCtrl)
; получаем содержимое "страницы"
$Text = _IEDocReadHTML($oIE)
; сохраняем код "страницы" в файл
FileWrite("Doc.html", $Text)
; разбираем код страницы...

Создался файл, в котором просто написано 0. При просмотра кода странице в браузере(F12 'chrome') показывает только
Код:
<html><head></head><body>0</body></html>
. Я понимаю, что я чайник. Что и где я делаю не так? как найти кнопку?
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
ZIDARAP
Мой пример нужно запускать при наличии окна.
Если вы начинаете с запуска установщика, то дождитесь появления окна
Код:
WinWaitActive("Java Setup - Welcome")
 
Автор
Z

ZIDARAP

Новичок
Сообщения
7
Репутация
0
Хорошо, завтра буду пробывать еще, если что отпишусь, пожалуйста поглядыввйте в тему))
 
Верх