Что нового

[Автоматизация] Автоматизированный ввод данных на веб форму

FannyLife

Новичок
Сообщения
4
Репутация
1
Доброго времени суток!
Помогите разобраться с кодом, пожалуйста. Не получается сделать автоматизированный ввод данных в поля веб формы.
Заранее спасибо!

Код:
#include<IE.au3>
$Link = ''
$sUrl = 'https://accounts.google.com/SignUp'
$gName = 'Jhon'
$gSurName = 'Smith'
$gMail = 'JhonSmith39567'
$gPass = 'BelkaStrelka'
$gDay = '5'
$gMonth= '4'
$gYear = '1979'
$gGender = ''
$gPhone = '9181002514'
$gCaptcha = ''
$gPhoneCountry = 'GB'
$gCountry = 'GB'

$oIE = _IECreate($sUrl)
$oName = _IEGetObjById($oIE, 'FirstName')
$oSurName = _IEGetObjByName($oIE, 'LastName')
$oMail = _IEGetObjByName($oIE, 'GmailAddress')
$oPass1 = _IEGetObjByName($oIE, 'Passwd')
$oPass2 = _IEGetObjByName($oIE, 'PasswdAgain')
$oDay = _IEGetObjByName($oIE, 'BirthDay')
$oMonth = _IEGetObjByName($oIE, 'BirthMonth')
$oYear = _IEGetObjByName($oIE, 'BirthYear')
$oGender = _IEGetObjByName($oIE, 'Gender')
$oPhoneCountry = _IEGetObjByName($oIE, 'RecoveryPhoneCountry')
$oPhone = _IEGetObjByName($oIE, 'RecoveryPhoneNumber')
$oCheckHomePage = _IEGetObjById($oIE, 'HomepageSet')
$oCaptcha = _IEGetObjByName($oIE, 'recaptcha_response_field')
$oCountry = _IEGetObjByName($oIE, 'CountryCode')
$oCheckTermsOfService = _IEGetObjById($oIE, 'TermsOfService')
$oCheckPersonalization = _IEGetObjById($oIE, 'Personalization')
$oButtonNext = _IEGetObjById($oIE, 'submitbutton')

If StringInStr($sUrl, 'SignUp') Then


_IEFormElementSetValue($oName, $gName)
_IEFormElementSetValue($oSurName, $gSurName)
_IEFormElementSetValue($oMail, $gMail)
_IEFormElementSetValue($oPass1, $gPass)
_IEFormElementSetValue($oPass2, $gPass)
_IEFormElementSetValue($oDay, $gDay)
_IEFormElementSetValue($oMonth, $gMonth)
_IEFormElementSetValue($oYear, $gYear)
_IEFormElementSetValue($oGender, $gGender)
_IEFormElementSetValue($oPhoneCountry, $gPhoneCountry)
_IEFormElementSetValue($oPhone, $gPhone)
_IEFormElementSetValue($oCountry, $gCountry)
_IEAction($oCheckHomePage, 'click')
_IEAction($oCheckTermsOfService, 'click')
_IEAction($oCheckPersonalization, 'click')
_IEAction($oButtonNext, 'click')

_IELoadWait($oIE)





Else
    MsgBox(16, 'Error', 'Ошибка окна MAIL.GOOGLE.COM')
EndIf



Добавлено:
Сообщение автоматически объединено:

Частично проблема решена. Вот такой код будет правильным:

Код:
#include<IE.au3>
$Link = ''
$sUrl = 'https://accounts.google.com/SignUp'
$gName = 'Jhon'
$gSurName = 'Smith'
$gMail = 'JhonSmith39567'
$gPass = 'BelkaStrelka'
$gDay = '5'
$gMonth= '04'
$gYear = '1979'
$gGender = 'MALE'
$gPhone = '9181002514'
$gCaptcha = ''
$gPhoneCountry = 'GB'
$gCountry = 'GB'

MsgBox(16, '', 'Готовимся читать')
$oIE = _IECreate($sUrl)
$oName = _IEGetObjById($oIE, 'FirstName')
$oSurName = _IEGetObjByID($oIE, 'LastName')
$oMail = _IEGetObjByID($oIE, 'GmailAddress')
$oPass1 = _IEGetObjByID($oIE, 'Passwd')
$oPass2 = _IEGetObjByID($oIE, 'PasswdAgain')
$oDay = _IEGetObjByID($oIE, 'BirthDay')
$oMonth = _IEGetObjByID($oIE, 'BirthMonth')
$oYear = _IEGetObjByID($oIE, 'BirthYear')
$oGender = _IEGetObjByID($oIE, 'Gender')
$oPhoneCountry = _IEGetObjByID($oIE, 'RecoveryPhoneCountry')
$oPhone = _IEGetObjByID($oIE, 'RecoveryPhoneNumber')
$oCheckHomePage = _IEGetObjById($oIE, 'HomepageSet')
$oCaptcha = _IEGetObjByID($oIE, 'recaptcha_response_field')
$oCountry = _IEGetObjByID($oIE, 'CountryCode')
$oCheckTermsOfService = _IEGetObjById($oIE, 'TermsOfService')
$oCheckPersonalization = _IEGetObjById($oIE, 'Personalization')
$oButtonNext = _IEGetObjById($oIE, 'submitbutton')
MsgBox(16, '', 'Прочитано Всё')



MsgBox(16, 'Box1', 'Готовимся вести запись')
_IEFormElementSetValue($oName, $gName)
_IEFormElementSetValue($oSurName, $gSurName)
_IEFormElementSetValue($oMail, $gMail)
_IEFormElementSetValue($oPass1, $gPass)
_IEFormElementSetValue($oPass2, $gPass)
_IEFormElementSetValue($oDay, $gDay)


_IEFormElementOptionSelect($oMonth, "март", 1,"byText")

_IEFormElementSetValue($oYear, $gYear)
_IEFormElementSetValue($oGender, $gGender)
_IEFormElementSetValue($oPhoneCountry, $gPhoneCountry)
_IEFormElementSetValue($oPhone, $gPhone)
_IEFormElementSetValue($oCountry, $gCountry)
_IEAction($oCheckHomePage, 'click')
_IEAction($oCheckTermsOfService, 'click')
_IEAction($oCheckPersonalization, 'click')
MsgBox(16, 'Box1', 'Записано Всё')
;_IEAction($oButtonNext, 'click')

_IELoadWait($oIE)



If StringInStr($sUrl, 'SignUp') Then
	MsgBox(16, 'TEXT', 'Зашли в тело проверки')

Else
    MsgBox(16, 'Error', 'Ошибка окна MAIL.GOOGLE.COM')
EndIf


Теперь встал вопрос, как выбрать элемент выпадающего списка? Из решений предложенных на форуме ничего не помогло.
Пришёл к использованию функции _IEFormElementOptionSelect, но не работает... помогите пожалуйста...

Пробовал так:
Код:
_IEFormElementOptionSelect($oMonth, "март", 1,"byText")


и так:
Код:
_IEFormElementOptionSelect($oMonth, 2, 1,"byIndex")
 
Автор
F

FannyLife

Новичок
Сообщения
4
Репутация
1
Теме АП
Помогите, пожалуйста...
Бьюсь не могу выбрать пункт из выпадающего списка. Не выбирается и всё тут...
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
FannyLife [?]
Теперь встал вопрос, как выбрать элемент выпадающего списка?

Код:
_IEFormElementOptionSelect($oMonth, "январь", 1,"byText")


Если у вас IE8 или IE9, то включите режим совместимости.
 
Автор
F

FannyLife

Новичок
Сообщения
4
Репутация
1
не помогло...
Также не помог запуск из под XP с IE7.


выдаёт ошибку:
--> IE.au3 V2.4-0 Error from function _IEFormElementOptionSelect, $_IEStatus_InvalidObjectType


Код сейчас выглядит так:

Код:
$oMonth = _IEGetObjByID($oIE, 'HiddenBirthMonth')
_IEFormElementOptionSelect($oMonth, "январь", 1,"byText")


Ругается на тип данных как я понимаю. Но разве autoit не берёт на себя приведение типов? Или я где-то чего-то недопонимаю?

Подскажите, пожалуйста.
 
Автор
F

FannyLife

Новичок
Сообщения
4
Репутация
1
Большое спасибо!
После вашего видео и у меня получилось :smile: Код был правильным :smile:
 
Верх