Что нового

Выполнение действий после авторизации

abvgdshka

Новичок
Сообщения
1
Репутация
0
Здравствуйте, использую библиотеку UDF: http://autoit-script.ru/index.php?topic=16780.0 и пример из поста http://autoit-script.ru/threads/avtorizacija-na-sajtax.4982/page-6#post-131262
для авторизации на mail.ru, все прекрасно, но, хотел бы Вас попросить помочь с реализацией следующей задачи, а именно:
есть список mail pass(мои/клиента), т.к их достаточно много(несколько десятков фирм старых, но туда еще поступают письма), решили сгребсти все в 1 ящик поставив сендинг входящих на основной ящик, руками очень долго)
сам скрипт
Код:
#include <UIAutomate.au3> ; Ссылка на UDF: http://autoit-script.ru/index.php?topic=16780.0

Local $sLogin = 'myoldmail'     ; Имя пользователя
Local $sPassword = 'pass'       ; Пароль
Local $sRememberMe = False             ; Запомнить меня
Local $sURl = 'https://mail.ru'

; Запуск Chrome с параметром --force-renderer-accessibility (При отсутствии этого параметра доступ к элементам страницы будет запрещён)
Run(@ProgramFilesDir & '\Google\Chrome\Application\chrome.exe --force-renderer-accessibility --incognito ' & $sURl)

$hWnd = WinWaitActive('[REGEXPCLASS:Chrome;TITLE:Mail.ru]', '', 6)
If Not $hWnd Then Exit MsgBox(4096 + 16, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')

_Authorize_Alfadirect($hWnd, $sLogin, $sPassword, $sRememberMe)
MsgBox(4096, '', '@error = ' & @error)

Func _Authorize_Alfadirect($hWnd, $sLogin, $sPassword, $sRememberMe = False)
    Local $oLogin, $oRememberMe, $oLogInButton, $oParent = _UIA_GetElementFromHandle($hWnd)
    If Not IsObj($oParent) Then Return SetError(1, 0, 0)
    $oLogin = _UIA_WaitControlTypeElement($oParent, $UIA_EditControlTypeId, 'Имя Ящика', Default, False, 10)
    If Not IsObj($oLogin) Then Return SetError(2, 0, 0)
    ;If $sRememberMe Then
        ;$oRememberMe = _UIA_GetControlTypeElement($oParent, $UIA_CheckBoxControlTypeId, 'Запомнить меня')
        ;If Not IsObj($oRememberMe) Then Return SetError(3, 0, 0)
        ;_UIA_ElementMouseClick($oRememberMe)
    ;EndIf
    $oLogInButton = _UIA_GetControlTypeElement($oParent, $UIA_ButtonControlTypeId, 'Войти')
    If Not IsObj($oLogInButton) Then Return SetError(4, 0, 0)
    BlockInput(1)
    _UIA_ElementSetFocus($oLogin)
    Send('{TAB}' & '{TAB}' & '{TAB}' & $sLogin & '{TAB}' & '{TAB}' & $sPassword)
    BlockInput(0)
    Return _UIA_ElementMouseClick($oLogInButton)
EndFunc   ;==>_Authorize_Alfadirect

после успешной авторизации, необходимо перейти(в той же вкладке в https://e.mail.ru/settings/filters?action=edit&fwd=1&afterReload=1) в поле "Пересылать все письма на адрес" вставить нужный адрес, нажать сохранить - ввести текущий пароль sPassword и вновь нажать "подтвердить"
так же из другого примера
Код:
#include <IE.au3>

$aFile = FileReadToArray(@ScriptDir & '\email.txt')        ; Читаем построчно файл в массив
$oIE = _IECreate('mail.ru')

For $sLine In $aFile                    ; Проходим по каждой строке
   $aData = StringSplit($sLine, ':', 2)            ; Разбиваем строку на логин и пароль
   $oForm = _IEFormGetObjByName($oIE, "auth")
   $oLogin = _IEFormElementGetObjByName($oForm, "login")        ; Элемент для ввода почты
   $oPassword = _IEFormElementGetObjByName($oForm, "password")    ; Элемент для ввода пароля

   _IEFormElementSetValue($oLogin, $aData[0])                    ; Записываем почту
   _IEFormElementSetValue($oPassword, $aData[1])                ; И пароль

$oLinks = _IETagNameGetCollection($oIE, "input")
For $oLink in $oLinks
   $sLinkText = _IEPropertyGet($oLink, "outerhtml")
   If StringInStr($sLinkText, '"Войти"') Then
       _IEAction($oLink, "focus")
       _IEAction($oLink, "click")
       ExitLoop
   EndIf
   Next
   MsgBox(4096, "", $aData[0] & @CRLF & $aData[1])
 
   $oExitButton = _IEGetObjById($oIE, 'PH_logoutLink')            ; Выходим из почты
   $oExitButton.focus()
   $oExitButton.click()
   Sleep(100)
   ;_IELoadWait($oIE)
 
Next
 
Последнее редактирование модератором:

InnI

AutoIT Гуру
Сообщения
4 486
Репутация
1 217
Вот фрагмент до кнопки "Сохранить". Дальше самостоятельно по аналогии
Код:
...
_Authorize_Alfadirect($hWnd, $sLogin, $sPassword, $sRememberMe)
MsgBox(4096, '', '@error = ' & @error)

$oParent = _UIA_GetElementFromHandle($hWnd)
_UIA_WaitControlTypeElement($oParent, 'UIA_ButtonControlTypeId', 'Обновить эту страницу', 'LegacyIAccessible.Description', False, 30)
$oEdit = _UIA_GetControlTypeElement($oParent, $UIA_EditControlTypeId, 'Адресная строка и строка поиска')
_UIA_ElementTextSetValue($oEdit, 'https://e.mail.ru/settings/filters?action=edit&fwd=1&afterReload=1')
_UIA_ElementSetFocus($oEdit)
ControlSend($hWnd, '', '', '{enter}')
_UIA_WaitControlTypeElement($oParent, 'UIA_ButtonControlTypeId', 'Обновить эту страницу', 'LegacyIAccessible.Description', False, 30)
$oInput = _UIA_GetControlTypeElement($oParent, $UIA_EditControlTypeId, 'Пересылать все письма на адрес')
_UIA_ElementTextSetValue($oInput, '[email protected]')
$oButton = _UIA_GetControlTypeElement($oParent, $UIA_ButtonControlTypeId, 'Сохранить')
;~ _UIA_ElementMouseClick($oButton)
 
Верх