Автор Тема: Как определить, что объект _IE... более не существует?  (Прочитано 3899 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн timsky [?]

  • Осваивающий
  • **
  • Сообщений: 93
  • Репутация: 28
  • Пол: Мужской
    • Персональный блог об AutoIt, Miranda, железе, полезном софте и прочей лабуде...
    • Награды
Иногда страница после загрузки может через некоторое время средиректиться куда-нибудь и если вызвыать клик по любой ссылке на этой странице, то скрипт падает с ошибкой.
Вот пример:
Код: AutoIt [Выделить]
#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')


Много чего пробовал, сегодня вернулся к проблеме и решил спросить тут: Как определить, что объект уже реально не существует?
http://timsky.ru - Персональный блог об AutoIt, Miranda, железе, полезном софте и прочей лабуде...

Русское сообщество AutoIt


Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3999
  • Репутация: 961
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Вот ваш код. Всё работает!  ;)
Код: AutoIt [Выделить]
#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 [?]

  • Осваивающий
  • **
  • Сообщений: 93

  • Автор темы
  • Репутация: 28
  • Пол: Мужской
    • Персональный блог об AutoIt, Miranda, железе, полезном софте и прочей лабуде...
    • Награды
Ты не понял вопроса  ;D

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3999
  • Репутация: 961
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
timsky  [?]
Цитировать
Как определить, что объект уже реально не существует?
В вашем примере
Код: AutoIt [Выделить]
$oLink

будет реальна, до тех пор, пока вы её не переопределите или не "убьёте"!
Поэтому, никак.

Русское сообщество AutoIt

Re: Как определить, что объект _IE... более не существует?
« Ответ #3 Отправлен: Апрель 13, 2010, 03:18:09 »

Оффлайн timsky [?]

  • Осваивающий
  • **
  • Сообщений: 93

  • Автор темы
  • Репутация: 28
  • Пол: Мужской
    • Персональный блог об AutoIt, Miranda, железе, полезном софте и прочей лабуде...
    • Награды
Garrett  [?]
Цитировать
В вашем примере
Код: AutoIt [Выделить]
$oLink будет реальна, до тех пор, пока вы её не переопределите или не "убьёте"!
Это я и сам знаю.
« Последнее редактирование: Апрель 13, 2010, 04:45:35 от timsky »

Оффлайн Daymos [?]

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

Оффлайн timsky [?]

  • Осваивающий
  • **
  • Сообщений: 93

  • Автор темы
  • Репутация: 28
  • Пол: Мужской
    • Персональный блог об AutoIt, Miranda, железе, полезном софте и прочей лабуде...
    • Награды
Daymos  [?]
Цитировать
От падения скрипта спасет _IEErrorHandlerRegister
Странно, я почему-то думал, что она по умолчанию подключается  :whistle:
Спасибо, думаю, это выход!

Русское сообщество AutoIt

Re: Как определить, что объект _IE... более не существует?
« Ответ #6 Отправлен: Апрель 14, 2010, 15:45:31 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
5 Ответов
2031 Просмотров
Последний ответ Ноябрь 23, 2015, 11:20:51
от Viton-Zizu
0 Ответов
617 Просмотров
Последний ответ Ноябрь 17, 2015, 15:02:10
от madmasles
3 Ответов
1104 Просмотров
Последний ответ Декабрь 09, 2015, 19:21:08
от InnI
11 Ответов
3739 Просмотров
Последний ответ Январь 13, 2016, 17:16:17
от InnI
26 Ответов
7442 Просмотров
Последний ответ Январь 27, 2016, 19:09:22
от AngryFlay
5 Ответов
1840 Просмотров
Последний ответ Ноябрь 21, 2016, 16:17:45
от hedji
4 Ответов
940 Просмотров
Последний ответ Январь 24, 2017, 11:10:06
от inververs
13 Ответов
1314 Просмотров
Последний ответ Август 07, 2017, 17:00:12
от Nbv_tim
1 Ответов
167 Просмотров
Последний ответ Сентябрь 02, 2018, 11:08:31
от ra4o
0 Ответов
78 Просмотров
Последний ответ Ноябрь 06, 2018, 21:35:57
от tar