Что нового

[Автоматизация] Помогите с нажатием кнопки в браузере

sss

Продвинутый
Сообщения
332
Репутация
96
Прочитав этот форум, мне стало намного понятнее, как использовать Control* функции. о я никак не пойму как можно нажать на кнопку в браузере. Autoit Window Info говорит что это 1 контрол (окно браузера). Так как же нажать на кнопку в браузере и ввести данные в поя типа Input? (пример: зайти на почту Gmail)
Заранее спасибо.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Sky-WaLkeR
Браузеров много. Если в IE, то смотрите в справке раздел User Defined Function Reference>>IE Management. Если FF, то смотрите здесь: Библиотека для работы с FireFox. И там, и там есть примеры.
 
Автор
sss

sss

Продвинутый
Сообщения
332
Репутация
96
Браузер - IE. Сам пользуюсь Google Chrome но для автоматизации ИЕ самое то. К сожалению, так и не понял, как можно заполнить поле в ИЕ, например, вход в почту. С АвтоИом пока на Вы. Пожалуйста, покажите пример на входе в систему Gmail. Желательно с объяснениями.

Заранее огромное спасибо всем кто поможет!
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Sky-WaLkeR [?]
Пожалуйста, покажите пример на входе в систему Gmail. Желательно с объяснениями.
[box title=HTML код, который нам понадобится для работы]
<form onsubmit="return(gaia_onLoginSubmit());" method="post" action="httрs://www.google.com/accounts/ServiceLoginAuth" id="gaia_loginform">
<input type="text" class="gaia le val" value="" size="18" id="Email" name="Email">
<input type="password" class="gaia le val" size="18" id="Passwd" name="Passwd">
<input type="checkbox" value="yes" id="PersistentCookie" name="PersistentCookie">
<input type="submit" value="Войти" id="signIn" name="signIn" class="gaia le button">
[/box]
Код:
; Подключаем UDF IE.au3
#include <IE.au3>

; Определяем переменные
Dim $sURL ="https://www.google.com/accounts/ServiceLogin?service=mail&passive=true&rm=false&continue=http%3A%2F%2Fmail.google.com%2Fmail%2F%3Fhl%3Dru%26tab%3Dwm%26ui%3Dhtml%26zy%3Dl&bsv=1eic6yu9oa4y3&scc=1&ltmpl=default&ltmplcache=2&hl=ru"
Dim $sLogin = "[email protected]"
Dim $sPassw = "qwerty"
Dim $iCookie = 1

; Запускаем IE и переходим на сайт Gmail
$oIE = _IECreate($sURL)

; Получаем Form по id
$oForm = _IEGetObjById($oIE, "gaia_loginform")

; Получаем Input`ы по их Name
$oEmail = _IEGetObjByName($oIE, "Email")
$oPasswd = _IEGetObjByName($oIE, "Passwd")
$oSubmit = _IEGetObjByName($oIE, "signIn")

; Ставим значения в Input`ы
_IEFormElementSetValue($oEmail, $sLogin)
_IEFormElementSetValue($oPasswd, $sPassw)

; Ставим Checkbox "Оставаться в системе" 1 on 0 off
_IEFormElementCheckboxSelect($oForm, "yes", "PersistentCookie", $iCookie, "byValue")

; Отправляем
_IEAction($oSubmit, "click")
 
Автор
sss

sss

Продвинутый
Сообщения
332
Репутация
96
Большое спасибо! Теперь все понятно.
 
Автор
sss

sss

Продвинутый
Сообщения
332
Репутация
96
А как можно нажать на кнопку Войти в mail.ru? Там используется Javascript, форму заполнил а подтвердить не получпется...
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Sky-WaLkeR [?]
mail.ru, или
Код:
;...
$oInputs = _IETagNameGetCollection($oIE, 'input')
For $oInput In $oInputs
	If $oInput.type == 'submit' And $oInput.value == 'Войти' Then
		_IEAction($oInput, 'click')
		ExitLoop
	EndIf
Next
_IELoadWait($oIE)
;...
 
Автор
sss

sss

Продвинутый
Сообщения
332
Репутация
96
А откуда брать $oInput и $oInputs? Ну это ладно, а как нажимать другие кнопки там же, например, выйти, и больше всего интересует как нажать НАПИСАТЬ ПИСЬМО и ОТПРАВИТЬ.
P.S: за ссылку спасибо, тем вариантом удалось зайти, что-то забыл я про _IEFormSubmit...
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Sky-WaLkeR [?]
как нажать НАПИСАТЬ ПИСЬМО и ОТПРАВИТЬ
Код:
#include <IE.au3>

$oIE = _IECreate('http://mail.ru/')

$oForm = _IEFormGetObjByName($oIE, 'Auth')
$oSelect = _IEFormElementGetObjByName($oForm, 'Domain')
$oUser = _IEGetObjByName($oIE, 'login')
$oPass = _IEGetObjByName($oIE, 'password')
_IEFormElementSetValue($oUser, 'Ваш логин')
_IEFormElementSetValue($oPass, 'Ваш пароль')
_IEFormElementOptionSelect($oSelect, 'mail.ru', 1, 'byValue')
$oInputs = _IETagNameGetCollection($oIE, 'input')
For $oInput In $oInputs
	If $oInput.type == 'submit' And $oInput.value == 'Войти' Then
		_IEAction($oInput, 'click')
		ExitLoop
	EndIf
Next
_IELoadWait($oIE)

_IELinkClickByText($oIE, 'Написать письмо')
$oTo = _IEGetObjByName($oIE, 'To')
$oSubject = _IEGetObjByName($oIE, 'Subject')
$oBody = _IEGetObjByName($oIE, 'Body')
$oSend = _IEGetObjByName($oIE, 'send')
_IEFormElementSetValue($oTo, '[email protected]')
_IEFormElementSetValue($oSubject, 'Тема письма')
_IEFormElementSetValue($oBody, 'Содержание письма')
_IEAction($oSend, 'click')
_IELoadWait($oIE)
 
Автор
sss

sss

Продвинутый
Сообщения
332
Репутация
96
Спасибо, все понятно! Все работает!
 
Верх