Что нового

Ошибка при использовании _IENavigate

viter

Новичок
Сообщения
40
Репутация
1
Постоянно при использовании _IENavigate выскакивает ощибка:
Код:
Line 561  (File "C:\Program Files\AutoIt3\Include\IE.au3"):
While Not (String($o_object.document.readyState) = "complete" Or $o_object.document.readyState = 4 Or $f_Abort)
While Not (String($o_object.document.readyState^ ERROR
Error: The requested action with this object has failed.
С чем это связано и как с эим бороться?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: Ошибка IE

viter,
А где код, в котором появляется ошибка? Какая версия IE?
Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"Ошибка IE" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Модератор.
 
Автор
V

viter

Новичок
Сообщения
40
Репутация
1
Код:
$sFiles = @ScriptDir & '\Adres.txt'
$hFiles = FileOpen($sFiles)
$sStrings = FileRead($hFiles)
FileClose($hFiles)
$aURLs=StringSplit(StringStripCR($sStrings), @LF, 2)
$sURLs=$aURLs[1]

   
$oIE = _IECreate($sURLs[1],1,0,1)
	 For $i=0 to UBound($aURLs)-1
	_IENavigate($oIE, $aURLs[$i],1)
	$sText = _IEBodyReadText ($oIE)
Next

Скажите где это посмотреть и я отвечу, Autoit ставился - 3.3.8.1 в винде IE - 8.0
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
У меня тоже так...
Это можно обойти так:
Код:
$sFiles = @ScriptDir & '\Adres.txt'
$hFiles = FileOpen($sFiles)
$sStrings = FileRead($hFiles)
FileClose($hFiles)
$aURLs=StringSplit(StringStripCR($sStrings), @LF, 2)
$sURLs=$aURLs[1]

   
$oIE = _IECreate($sURLs[1],1,0,1)

For $i=0 to UBound($aURLs)-1
    $oIE.Navigate($aURLs[$i]) ;<--------- Taк
    _IELoadWait($oIE)
    $sText = _IEBodyReadText($oIE)
Next


P.S. Не думаю что версия IE имеет тут значение.
 
Автор
V

viter

Новичок
Сообщения
40
Репутация
1
Спасибо, но все равно ошибка выскакивает
Кстати ошибка теперь появляется именно на этапе _IELoadWait($oIE)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
viter,
А так?
Код:
#include <IE.au3>

Global $iErrorIE

$aURLs = StringSplit(StringStripCR(FileRead(@ScriptDir & '\Adres.txt')), @LF)

_IEErrorHandlerRegister('_Error_IE')

$oIE = _IECreate('about:blank');,1,0,1)

For $i = 1 To $aURLs[0]
	_IENavigate($oIE, $aURLs[$i])
	If $iErrorIE Then
		ConsoleWrite($aURLs[$i] & @LF)
		$iErrorIE = 0
		ContinueLoop
	EndIf
	;$sText = _IEBodyReadText($oIE)
Next

Func _Error_IE()
	$iErrorIE = $oIEErrorHandler.number
	ConsoleWrite('Object error!' & @LF)
EndFunc   ;==>_Error_IE
 
Автор
V

viter

Новичок
Сообщения
40
Репутация
1
Спасибо теперь страницы из-за которых появлялась ошибка пропускаются, вывел их в лог оказалось где то 20-30% из всех, причем из за чего ошибка появляется так и не ясно страницы с виду вроде ничем не отличаются от других.
Еще вопрос как сделать что бы при использовании _IECreateе или _IENavigate eсли страница в течении какого то определенного времени не загрузилась скрипт шел дальше?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
viter [?]
Еще вопрос как сделать

Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Модератор.
 
Автор
V

viter

Новичок
Сообщения
40
Репутация
1
Тема про ошибку при использовании _IENavigate, я посчитал что мой вопрос тут актуален так как при использовании последнего предложенного скрипта в определенный момент выполнение зависает и я предполагаю именно в момент _IENavigate, возможно был не прав тогда извеняйте
 
Верх