Добрый день! Я столкнулся с такой проблемой: на некоторых VDS/VPS где нужно запускать скрипт нет возможности обновить IE до 10 или 11 версии. Стоит стандартная 8-ка или 9-ка. Проблема в том что скрипт не хочет взаимодействовать с таким IE как ни крути. По этой причине и возник вопрос: есть ли какие нибудь общие рекомендации по унификации скриптов для их стабильной работы на разных IE (хотя бы с 8-9)? и для примера вот часть кода начала работы скрипта :
А вот что он дает на Server 2008 r2 с IE9
Данный скрипт хорошо работает на 7-ке, 2012 - сервере как на 10-м так и на 11 IE
Код:
#include <GUIConstants.au3>
#include <IE.au3>
#include <Array.au3>
#include <Date.au3>
#include <File.au3>
Opt("WinTitleMatchMode", 2)
Opt("SendKeyDelay", 0)
_IELoadWaitTimeout(40000)
Global $aURL
Global $aData
$sMail = 'ннннннн@mail.ru'
$sPass = '11111'
While 1
While 1
$oIE = _IECreate('Сайт', 0, 0)
Sleep(2000)
If _IEPropertyGet($oIE, 'title') == "бррр" Then
ExitLoop
ElseIf _IEPropertyGet($oIE, 'title') <> "бррр" Then
_IEQuit($oIE)
Sleep(10000)
EndIf
WEnd
$hnd = _IEPropertyGet($oIE, "hwnd")
ConsoleWrite($hnd & "+Запуск+" & _NowTime(4) & @CRLF)
$oLink = _IELinkClickByText($oIE, 'Войти ')
Sleep(500)
$oForm = _IEFormGetCollection($oIE, 1)
$oMail = _IEFormElementGetObjByName($oForm, 'email')
$oPass = _IEFormElementGetObjByName($oForm, 'password')
_IEFormElementSetValue($oMail, $sMail)
_IEFormElementSetValue($oPass, $sPass)
А вот что он дает на Server 2008 r2 с IE9
Код:
0x000603AC+Запуск+18:09
--> IE.au3 T3.0-1 Warning from function _IELinkClickByText, $_IESTATUS_NoMatch
--> IE.au3 T3.0-1 Warning from function _IEFormElementGetObjByName, $_IESTATUS_NoMatch
--> IE.au3 T3.0-1 Error from function _IEFormElementSetValue, $_IESTATUS_InvalidDataType