Что нового

Как определить, что объект _IE... более не существует?

timsky

Осваивающий
Сообщения
93
Репутация
28
Иногда страница после загрузки может через некоторое время средиректиться куда-нибудь и если вызвыать клик по любой ссылке на этой странице, то скрипт падает с ошибкой.
Вот пример:
Код:
#include <ie.au3>

$ie = _IECreate('http://google.ru')
$oLinks = _IELinkGetCollection($ie)

For $oLink In $oLinks
	If $oLink.innertext = 'Картинки' Then ExitLoop
Next

MsgBox(0, $oLink.innertext, $oLink.href)

_IENavigate($ie, 'http://ya.ru')

MsgBox(0, 'IsObj', IsObj($oLink))

_IEAction($oLink, 'CLICK')


Много чего пробовал, сегодня вернулся к проблеме и решил спросить тут: Как определить, что объект уже реально не существует?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
964
Вот ваш код. Всё работает! ;)
Код:
#include <ie.au3>

$ie = _IECreate('http://google.ru')
$oLinks = _IELinkGetCollection($ie)

For $oLink In $oLinks
    If $oLink.innertext = 'Картинки' Then ExitLoop
Next

MsgBox(0, $oLink.innertext, $oLink.href)

_IENavigate($ie, 'http://ya.ru')
$oLinks = _IELinkGetCollection($ie)

For $oLink In $oLinks
    If $oLink.innertext = 'Картинки' Then ExitLoop
Next
	
MsgBox(0, 'IsObj', IsObj($oLink))

_IEAction($oLink, 'CLICK')
 
Автор
timsky

timsky

Осваивающий
Сообщения
93
Репутация
28
Ты не понял вопроса ;D
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
964
timsky [?]
Как определить, что объект уже реально не существует?
В вашем примере
Код:
$oLink
будет реальна, до тех пор, пока вы её не переопределите или не "убьёте"!
Поэтому, никак.
 

Daymos

Новичок
Сообщения
8
Репутация
1
От падения скрипта спасет _IEErrorHandlerRegister
А как проверить - увы, не знаю.
 
Автор
timsky

timsky

Осваивающий
Сообщения
93
Репутация
28
Daymos [?]
От падения скрипта спасет _IEErrorHandlerRegister
Странно, я почему-то думал, что она по умолчанию подключается :whistle:
Спасибо, думаю, это выход!
 
Верх