Что нового

Как обратиться к элементу формы по тегу class

eropov

Jury
Сообщения
195
Репутация
25
Здравствуйте. Есть форма сайта. Скажите как заполнить форму через IE, если присутствует только тег class.
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
http://autoit-script.ru/index.php?topic=9464.msg63032#msg63032
 
Автор
E

eropov

Jury
Сообщения
195
Репутация
25
Zaramot
Посмотрел тему, написал функцию, скажите что еще в нее можно добавить, может какие нибудь проверки?
Код:
#include <IE.au3>

$oIE = _IECreate("https://target.mail.ru/ads/create/", 0, 1, 1)

_IEFormElementGetObjByClass($oIE, 'input', 'input help_inp input_title', 'Заголовок')
_IEFormElementGetObjByClass($oIE, 'textarea', 'input input_text', 'Текст объявления')

Func _IEFormElementGetObjByClass($oIE, $sTag, $sClass, $sText)
	If IsObj($oIE) = 1 And IsString($sTag) = 1 Then
		$Inputs = _IETagNameGetCollection($oIE, $sTag)
		If Not @error And IsObj($Inputs) = 1 Then
			For $Input In $Inputs
				If $Input.classname == $sClass Then
					_IEFormElementSetValue($Input, $sText)
					If Not @error Then
						Return 1
					Else
						SetError(-4)
					EndIf
				Else
					SetError(-3)
				EndIf
			Next
		Else
			SetError(-2)
		EndIf
	Else
		SetError(-1)
	EndIf
EndFunc
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Если проверять на ошибки - то, ИМХО, проще делать так
Код:
#include <IE.au3>
$oIE=_IECreate("https://www.google.com/")
Local $oClear,$oInputs,$Input
$oInputs = _IETagNameGetCollection($oIE, 'input')
For $Input In $oInputs
	If $Input.classname == "gbqfif" Then
		$oClear = $Input
		ExitLoop
	EndIf
Next

If IsObj($oClear) Then
	;Делаем с объектом что угодно, например вписываем значение
	$oClear.value = "Любое значение"
Else
	ConsoleWrite("! Не найдено" & @LF)
EndIf
 
Верх