Что нового

[Сеть, интернет] Параллельная работа с ф-цией _IENavigate()

The Dream

Новичок
Сообщения
393
Репутация
3
Доброго времени всем суток.Обращаюсь к Вам за советом,хотя скорей всего все же помощью.Ситуация такая.Не дожидаясь окончания загрузки страницы,требуется,чтобы при обнаружении нужного тега - остановить страницу и вставить тег.Вроде бы , то что я надумал - работает . Но не корректно :whistle:


Код:
_IENavigate($_oIE, 'http://elforro.com', 0) ; запускаем страничку и сразу продолжаем код , для примера взял этот форум,так как он обычно долго загружается

	While 1

		$oLinks = _IETagNameGetCollection($_oIE, 'input') ; получаем теги тела страницы,которая уже загрузилась
;~ 		Sleep(100)
		ConsoleWrite('')
		ConsoleWrite('start! (' & $oLinks & ')' & @CRLF)
		For $oLink In $oLinks
			ConsoleWrite('$oLink.id - ' & $oLink.id & @CRLF)
			If $oLink.id == 'navbar_username' Then
;~ 				MsgBox(16, '', 'мы нашли!')
				If _IEAction($_oIE, 'stop') Then ; с первого раза не останавливается... (?)
					If _IEPropertySet($oLink, "innertext", 'test') Then
						MsgBox(16, '', 'все успешно')
					EndIf
				EndIf
			EndIf
		Next
	WEnd



еще не большой вопрос...с iFrame - такая же ситуация - ждать появления и останавливать браузер ?
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
Может я как-то не понятно выразился ? (сарказма нет!) :whistle:
 

axlwor

Скриптер
Сообщения
657
Репутация
147
У меня и вручную браузер не останавливается. Походу кнопка стоп как прогрессбар при копировании, такая же бесмысленная
 

madmasles

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

$sUrl = 'http://www.google.ru/'
$iError = 1

$oIE = _IECreate($sUrl, 0, 0)
If @error Then
	MsgBox(16, 'Error', '_IECreate')
	Exit
EndIf
For $i = 1 To 1
	$oForm = _IEFormGetCollection($oIE, 0)
	$oInput = _IEFormElementGetObjByName($oForm, 'q')
	If @error Then ExitLoop
	_IEFormElementSetValue($oInput, 'что-то надо найти')
	If @error Then ExitLoop
	$iError = 0
Next
_IEAction($oIE, 'visible')
If $iError Then
	MsgBox(16, 'Error', 'Error')
Else
	MsgBox(64, 'Info', 'OK')
EndIf
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
да нет,как бы не совсем то , что требуется ..


Просто проблема в том,что когда страница уже почти загружена - ie еще , "чтото" загружает и этим не дает дальше выполнятся скрипту..
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
965
The Dream [?]
ie еще , "чтото" загружает и этим не дает дальше выполнятся скрипту..
IE грузит мультимедиа ресурсы, сам же HTML грузится быстро. От этого никуда не деться, если только в свойствах отключить картинки, флешь и т.д.
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
Тоесть нет,вопрос не в этом.А в том,что ..почему , когда я ставлю аргумент wait = 0 , то ф-ция всеравно продолжает якобы "ждать" окончания (?) . Я просто _IENavigate()
 
Верх