Что нового

В чём отличия _IETagNameGetCollection и _IETagNameAllGetCollection

o_nix

Новичок
Сообщения
35
Репутация
1
Этот код работает
Код:
#include <IE.au3>

$oIE = _IECreate('http://www.google.ru/')
_IELoadWait($oIE)

$oInputSerch = _IEGetObjByName($oIE, 'q')
_IEDocInsertText($oInputSerch, 'AutoIt')

$oInputs = _IETagNameGetCollection($oIE, 'input')


For $oInput In $oInputs
    If $oInput.value == 'Поиск в Google' Then
_IEAction($oInput, 'click')
    EndIf
Next


Этот код неработает
Код:
#include <IE.au3>

$oIE = _IECreate('http://www.google.ru/')
_IELoadWait($oIE)

$oInputSerch = _IEGetObjByName($oIE, 'q')
_IEDocInsertText($oInputSerch, 'AutoIt')

$oInputs = _IETagNameAllGetCollection($oIE)


For $oInput In $oInputs
    If $oInput.value == 'Поиск в Google' Then
_IEAction($oInput, 'click')
    EndIf
Next

Хотя теоретически исходя из описания функций в хелпе должен работать.
при этом с $oInput.inertext работает с $oInput.value нет ...
Что нетак ??

Цель - создать скрипт кликающий кнопку зная только Value этой кнопки и ничего больше. Тоесть чтобы небыло заморочек с названиями форм и id элементов и тд.
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Вот так, всё будет работать:
Код:
$oIE = _IECreate('http://www.google.ru/')
;_IELoadWait($oIE) нет необходимости, так как в _IECreate встроена проверка на загрузку страницы
$oInputSerch = _IEGetObjByName($oIE, 'q')
_IEDocInsertText($oInputSerch, 'AutoIt')
$oInputs = _IETagNameAllGetCollection($oIE)

For $oInput In $oInputs
    If $oInput.getAttribute("value") = 'Поиск в Google' Then
	_IEAction($oInput, 'click')
    EndIf
Next


Просто нет такого свойства, Value. Есть метод getAttribute("value") который по имени атрибута возвращает вам его значения. В данном случае искомая строка.
 
Верх