Что нового

Как работать с новым окном IE, если он создается при нажатии на ссылку?

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Подскажите. Я создаю объект IE
Код:
#include <IE.au3>
$oIE = _IECreate("Какой нибудь адрес")

Затем я нажимаю ссылку
Код:
_IELinkClickByText($oIE,"Ссылка которая откроется в новом окне")


И тут начинаются непонятки). У меня IE 9 версии - такие ссылки он открывает в новом окне - считай создает новый процесс. В этом окне сделаны настройки - всякие checkbox`s radio`s и кнопка Сохранить.

Как мне продолжать работать с этим новым окном, как мне нажать эти элементы? Я хочу использовать
Код:
_IEGetObjByName(НО что указывать в качестве объекта. Окно же новое, значит объекта нету)
а $oIE это объект с данными первоначальной страницы..
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
inververs,
Код:
_IEAttach()
Или
Код:
$oLink.target = '_self'
 
Автор
inververs

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Спасибо, не знал про _IEAttach(). А для чего
Код:
$oLink.target = '_self'
?
 

madmasles

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

$iError = 1
For $i = 1 To 1
	$oIE = _IECreate('http://www.google.ru/')
	If @error Then ExitLoop
	$oForm = _IEGetObjById($oIE, 'gbqf')
	If @error Then ExitLoop
	$oInput = _IEFormElementGetObjByName($oForm, 'q')
	If @error Then ExitLoop
	_IEFormElementSetValue($oInput, 'autoit-script.ru')
	If @error Then ExitLoop
	_IEFormSubmit($oForm)
	If @error Then ExitLoop
	$oLinks = _IELinkGetCollection($oIE)
	If @error Then ExitLoop
	For $oLink In $oLinks
		If StringInStr(_IEPropertyGet($oLink, 'innertext'), 'Главная страница') Then
			$oLink.target = '_self';закомментируйте
			_IEAction($oLink, 'click')
			If @error Then ExitLoop 2
			_IELoadWait($oIE)
			If @error Then ExitLoop 2
			ExitLoop
		EndIf
	Next
	$iError = 0
Next
If $iError Then
	_IEQuit($oIE)
	MsgBox(16, 'Error', 'Error')
	Exit -33
EndIf
$iError = 1
For $i = 1 To 1
	$oForm = _IEGetObjById($oIE, 'search_form')
	If @error Then ExitLoop
	$oInput = _IEFormElementGetObjByName($oForm, 'search')
	If @error Then ExitLoop
	_IEFormElementSetValue($oInput, 'inververs')
	If @error Then ExitLoop
	$oSubmit = _IEFormElementGetObjByName($oForm, 'submit')
	If @error Then ExitLoop
	_IEAction($oSubmit, 'click')
	If @error Then ExitLoop
	_IELoadWait($oIE)
	If @error Then ExitLoop
	$iError = 0
Next
If $iError Then
	_IEQuit($oIE)
	MsgBox(16, 'Error', 'Error')
	Exit -33
EndIf
MsgBox(64, 'Info', 'OK')
 
Автор
inververs

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
madmasles
понял, спасибо
P.s хороший пример :smile:
 
Верх