Функция _IEFormSubmit

 ↑  ←  Описание функции


_IEFormSubmit

Отправляет указанную форму.

#include <IE.au3>
_IEFormSubmit(ByRef $o_object [, $f_wait = 1])

Параметры

$o_object Переменная объекта InternetExplorer.Application, объект формы
$f_wait [необязательный] Указывает, ожидать ли загрузки страницы
0 = Возвратиться немедленно, не ожидая загрузки страницы
1 = (по умолчанию) Ожидать завершения загрузки страницы перед возвратом

Возвращаемое значение

Успех:Возвращает -1
Ошибка:Возвращает 0 и устанавливает @error
@error:0 ($_IEStatus_Success) = Нет ошибок
1 ($_IEStatus_GeneralError) = Общая ошибка
3 ($_IEStatus_InvalidDataType) = Неверный тип данных
4 ($_IEStatus_InvalidObjectType) = Неверный тип объекта
6 ($_IEStatus_LoadWaitTimeout) = Тайм-аут ожидания загрузки
8 ($_IEStatus_AccessIsDenied) = Отказано в доступе
9 ($_IEStatus_ClientDisconnected) = Клиент отключен
@extended:Содержит номер неверного параметра

Примечания

Для многих форм HTML не достаточно использовать _IEFormSubmit(), потому что часто есть пользовательский JavaScript привязанный к событию onClick для его кнопки "Отправить". В этом случае необходимо имитировать нажатие кнопки "Отправить" вместо _IEFormSubmit(). См. пример действия "click" в функции _IEAction().
Также некоторые обработчики форм полагается на параметр "value" кнопки отправки, передаваемые вместе с остальными данными формы (часто, когда существует более одной кнопки отправления в форме и они предназначены для вызова различных результатов). Эта функция не приведет к передаче. Решение заключается в использовании действия "click" в функции _IEAction(), как указано выше.
Если у вас возникли проблемы с автоматическим вызовом _IELoadWait(), то установите параметр $f_wait равным 0 и вызовите _IELoadWait() из вашего скрипта, передавая ему объект InternetExplorer.

См. также

_IEFormReset, _IEFormGetObjByName, _IEFormGetCollection, _IEFormElementGetObjByName, _IEFormElementGetCollection, _IELoadWait

Пример

#include <IE.au3>

; ====================================
; Пример 1 - Открывает браузер с примером "form", заполняет поля формы и отправляет форму

$oIE = _IE_Example("form")
$oForm = _IEFormGetObjByName($oIE, "ExampleForm")
$oText = _IEFormElementGetObjByName($oForm, "textExample")
_IEFormElementSetValue($oText, "Эй! Это работает!")
_IEFormSubmit($oForm)

; ====================================
; Пример 2 - Получает ссылку на указанный элемент формы и устанавливает его значение.
;               в этом примере запрос в поисковой системе Google.

$oIE = _IECreate("http://www.google.com")
$oForm = _IEFormGetObjByName($oIE, "f")
$oQuery = _IEFormElementGetObjByName($oForm, "q")
_IEFormElementSetValue($oQuery, "AutoIt IE.au3")
_IEFormSubmit($oForm)

; ====================================
; Пример 3 - Получает ссылку на указанный элемент формы и устанавливает его значение.
;               Вызывайте _IELoadWait вручную, если _IELoadWait по умолчанию вызывает проблему.

$oIE = _IECreate("http://www.google.com")
$oForm = _IEFormGetObjByName($oIE, "f")
$oQuery = _IEFormElementGetObjByName($oForm, "q")
_IEFormElementSetValue($oQuery, "AutoIt IE.au3")
_IEFormSubmit($oForm, 0)
_IELoadWait($oIE)