Что нового

[Сеть, интернет] WinWaitActive в Internet Explorer

ulan44

Знающий
Сообщения
55
Репутация
8
Доброго времени суток.
Вообщем проблема такого рода.
Открывается сайт в IE соответственно IE работает через прокси сервер с авторизацией.
После того как через скрипт пытаюсь открыть сайт выходит окно авторизации где логин и пароль сохранен, нужно нажать на кнопку "ОК" в этом самом окне. Делаю так.

Код:
If WinWaitActive("Безопасность Windows") Then
	  ControlClick("Безопасность Windows", "", "[CLASS:Button; TEXT:OK; Instance:2;]")
	  EndIf


Но почему то не работает :scratch:
Можно конечно просто послать "Enter" но это капец какой костыль.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
If WinWait("Безопасность Windows") Then
      ControlClick("Безопасность Windows", "", "[CLASS:Button; INSTANCE:2]")
 EndIf
 
Автор
U

ulan44

Знающий
Сообщения
55
Репутация
8
не работает, я так кстати тоже пробовал.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
ulan44
Отключите ожидание загрузки страницы: [Автоматизация] Нажать на ссылку..


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

И ещё проверьте текст кнопки. В русском IE текст на кнопке (ОК) написан русскими буквами, а у вас в скрипте - английскими.


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

Создаётся ощущение, что AutoIt сначала ищет класс, затем текст и после этого считает instance для найденных кнопок, т.е. для класса с текстом
Код:
; есть такой элемент (0x001A0350)
ConsoleWrite(ControlGetHandle("Безопасность Windows", "", "[CLASS:Button;          Instance:2;]") & @CRLF)
; и это тот же элемент (0x001A0350)
ConsoleWrite(ControlGetHandle("Безопасность Windows", "", "[CLASS:Button; TEXT:ОК;            ]") & @CRLF)
; а такого элемента нет (0x00000000)
ConsoleWrite(ControlGetHandle("Безопасность Windows", "", "[CLASS:Button; TEXT:ОК; Instance:2;]") & @CRLF)
; оказывается у этого элемента "Instance:1"
ConsoleWrite(ControlGetHandle("Безопасность Windows", "", "[CLASS:Button; TEXT:ОК; Instance:1;]") & @CRLF)
; такого элемента снова нет (0x00000000)
ConsoleWrite(ControlGetHandle("Безопасность Windows", "", "[TEXT:ОК; Instance:2;]") & @CRLF)
; а такой элемент есть (0x001A0350)
ConsoleWrite(ControlGetHandle("Безопасность Windows", "", "[TEXT:ОК; Instance:1;]") & @CRLF)
 
Автор
U

ulan44

Знающий
Сообщения
55
Репутация
8
Ну вот делаю так без всяких ожиданий загрузки страницы
И все равно не работает. Пробовал и просто по классам обращаться к окну и название кнопочки "ОК" с английского на русский переписывал.
В место
Код:
WinWait
пробовал
Код:
WinWaitActive
толку ноль :wall_brake:

Код:
#include <IE.au3>
$sUrl = 'http://site.ru'

$oIE = _IECreate($sUrl)

 If WinWait("Безопасность Windows") Then
      ControlClick("Безопасность Windows", "", "[CLASS:Button; INSTANCE:2]")
 EndIf
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
_IECreate ждет загрузку страницы, поэтому у вас не работает скрипт, он просто не доходит до If WinWait(...
 
Верх