Что нового

Ошибка на второй итерации

tar

Новичок
Сообщения
52
Репутация
0
Здравствуйте, помогите.
Скрипт отрабатывает один раз без ошибок, на второй итерации возникает:
Код:
IE.au3 T3.0-2 Error from function _IECreate,  (Browser Object Creation Failed)

Как исправить?
Код:
#include "UIAutomate.au3"
#include <String.au3>
#include <IE.au3>
#include <Array.au3>
#include <MsgBoxConstants.au3>
#include <file.au3>

Global $sUser = "User"
Global $sPass = "Pass"
Dim $i

Opt("SendKeyDelay", 55)

$lFile = FileOpen("okvpn1.txt")
Do
$sL_ip = FileReadLine($lFile)
    If @error Then ExitLoop

Run('rundll32.exe inetcpl.cpl, ClearMyTracksByProcess 2')
  Sleep(5000)
$Res = Run("Rundll32.exe shell32.dll,Control_RunDLL Inetcpl.cpl,,4", "")
$Res = WinWait("Internet Properties", "", 20)
ControlClick("Internet Properties", "", "[CLASS:Button; INSTANCE:10]")

$Res = WinWait("Local Area Network (LAN) Settings", "", 20)
Sleep(1000)
ControlSetText("Local Area Network (LAN) Settings", "", "[CLASS:Edit; INSTANCE:2]", $sL_ip) ;Заменит текущий
Sleep(1000)
ControlClick("Local Area Network (LAN) Settings", "", "[CLASS:Button; INSTANCE:12]")
Sleep(1000)
ControlClick("Internet Properties", "", "[CLASS:Button; INSTANCE:11]")
Sleep(1000)
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
$sUrl = 'https://2ip.ru/'
$oIEs = _IECreate($sUrl, 0, 1, 0) ;IE.au3 T3.0-2 Error from function _IECreate,  (Browser Object Creation Failed)
Sleep(4000)
$hLogin = WinGetHandle('[REGEXPCLASS:Credential Dialog Xaml.*]')
$oParent = _UIA_GetElementFromHandle($hLogin)
$oUser = _UIA_GetControlTypeElement($oParent, "UIA_EditControlTypeId", "EditField_0", $UIA_AutomationIdPropertyId)
$oPass = _UIA_GetControlTypeElement($oParent, "UIA_EditControlTypeId", "PasswordField_1", $UIA_AutomationIdPropertyId)

_UIA_ElementTextSetValue($oUser, $sUser)
_UIA_ElementTextSetValue($oPass, $sPass)

ControlSend($hLogin, '', '', '{ENTER}')
_IELoadWait($oIEs)
sleep(500)
_IEQuit ($oIEs)
sleep(5000)
 $i = $i + 1 ;
Until $i = 30
 

joiner

Модератор
Локальный модератор
Сообщения
3 035
Репутация
503
проверил на версии 3.3.12.0
ошибок нет.
может стоит обновить браузер?


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

или работать с другим
 
Автор
T

tar

Новичок
Сообщения
52
Репутация
0
joiner [?]
Благодарю. Работает под W10, IE11 Autoit последняя версия с официального сайта. Куда уж новее) Попробую на другой машине.


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

Эту ошибку нельзя как то обработать, чтобы в случае её возникновения, снова вызвать _IECreate?
 

joiner

Модератор
Локальный модератор
Сообщения
3 035
Репутация
503
Код:
_IECreate

проверка на ошибку, проверка на тип переменной
зациклить запуск в случае ошибки.
второй вариант.
после первого успешного запуска в процессах может оставаться висеть IE. вот его гасить принудительно в каждом цикле
 

Dragonling

Новичок
Сообщения
3
Репутация
0
Извиняюсь за некропост. Это проблема свежего Autoit. Всё, что старше 3.3.12.0 имеет какой-то баг при работе с COM-объектами. Это репортили, но разработчик не исправил. А доказать это проблематично, т. к. ошибка плавающая. Пользуйтесь 3.3.12
 
Верх