Что нового

Ошибка при работе с браузерными билиотекой IE.au3

ggzgamer

Осваивающий
Сообщения
134
Репутация
23
После определённого времени рабочий скрипт вылетает с ошибкой :scratch:
Где и на какой строчке не понятно судя из кода. По ошибке понятно, что не выставляется какой-то SetError(..) внутри библиотеки.
С чем проблема может быть связана?


Код:
\documents\AU_?\install\Include\IE.au3 (2861) : ==> The requested action with this object has failed.:
Return SetError($_IEStatus_Success, 0, $oTemp.outerHTML)
Return SetError($_IEStatus_Success, 0, $oTemp.outerHTML^ ERROR
>Exit code: 1    Time: 2002.594
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
ggzgamer,
А где Ваш код?
 
Автор
G

ggzgamer

Осваивающий
Сообщения
134
Репутация
23
Вот в библиотеке где ошибка, только не понятно в чём

Код:
Case $s_property = "outerhtml"
			If __IEIsObjType($o_object, "documentcontainer") Or __IEIsObjType($o_object, "document") Then
				$oTemp = $o_object.document.body
			Else
				$oTemp = $o_object
			EndIf
			Return SetError($_IEStatus_Success, 0, $oTemp.outerHTML)


Опять при генеральной проверке скрипта выдаётся ошибка, причём какая-то закономерная по времени и опять в той же строке библиотеки IE.au3:
Код:
D:\documents\AU_?\install\Include\IE.au3 (2861) : ==> The requested action with this object has failed.:
Return SetError($_IEStatus_Success, 0, $oTemp.outerHTML)
Return SetError($_IEStatus_Success, 0, $oTemp.outerHTML^ ERROR
>Exit code: 1    Time: 2266.196
 
Автор
G

ggzgamer

Осваивающий
Сообщения
134
Репутация
23
Опытным путём было обнаружено, что одним из условий появления ошибки является обновление страницы. Как обновление страницы сказывается на изменение массива объектов, занесённых в переменную - не понятно.
В примере идёт успешная проверка на объектный тип переменных, но ошибка появляется позже - лишь при самом действии над объектом. Пытаюсь отследить ошибку с помощью @error, но вроде бесполезно, так как данный макрос меняется только при вызове функции.

Есть-ли какие-нибудь способы остледить эту ошибку запрашиваемого действия над объектом?


Код:
Global $sServer='autoit-script.ru'
Global $oIE

$oIE=_IEAttach($sServer, 'url')
If @error Then
	$oIE=_IECreate($sServer)
EndIf
$oTds=_IETagNameGetCollection($oIE, 'td')
If @error Then
	MsgBox(0, 'TNGC_err', '')
EndIf
$iCount=0
For $oTd In $oTds
	$iCount+=1
	$bgn=TimerInit()
	If IsObj($oTd) And IsObj($oIE) Then
    	$sTdClass=$oTd.classname ; после обновления страницы происходит ошибка The requested action with this object has failed
    	If Not @error Then ; пытаюсь отловить эту ошибку и никак
    		$Res=MsgBox(1, 'Элемент №' & $iCount, $sTdClass & @CRLF & @CRLF & 'Обновить страницу - "OK"' & @CRLF & 'Продолжить - "Отмена"')
			If $Res=1 Then
				_IEAction($oIE, 'refresh') ; обновляем страницу
				_IELoadWait($oIE)
			EndIf
    	Else
			MsgBox(0, 'err', 'Ошибка получения ClassName')
    		ExitLoop
    	EndIf
	Else
		MsgBox(0, 'Obj_err', 'exit')
		ExitLoop
	EndIf
Next
Exit
 
Верх