Что нового

Помогите советом или советы по написанию скриптов для разных IE

uritalex

Новичок
Сообщения
197
Репутация
3
Добрый день! Я столкнулся с такой проблемой: на некоторых VDS/VPS где нужно запускать скрипт нет возможности обновить IE до 10 или 11 версии. Стоит стандартная 8-ка или 9-ка. Проблема в том что скрипт не хочет взаимодействовать с таким IE как ни крути. По этой причине и возник вопрос: есть ли какие нибудь общие рекомендации по унификации скриптов для их стабильной работы на разных IE (хотя бы с 8-9)? и для примера вот часть кода начала работы скрипта :
Код:
#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
Данный скрипт хорошо работает на 7-ке, 2012 - сервере как на 10-м так и на 11 IE
 
Верх