Что нового

[Автоматизация] Авторизация и переход по страницам с написанием сообщении

chernobeloe

Новичок
Сообщения
33
Репутация
0
Здравствуйте еще раз
Буквально на каждом шагу проблемы :blink:
Сразу к сути: есть у меня 2 группы в сц, надо всего лишь Войти,Перейти на страницу Группы1, написать на стене, и потом во 2й группе

Код:
#include <IE.au3>

$sLogin = '[email protected]'
$sPass = 'supersecret:)'
$sUrl = "website.domen"

$oIE = _IECreate($sUrl)
$hWnd = _IEPropertyGet($oIE, "hwnd")
WinSetState($hWnd, "", @SW_MAXIMIZE)
$oLogin = _IEGetObjByName($oIE, 'email')
$oPass = _IEGetObjByName($oIE, 'pass')

_IEFormElementSetValue($oLogin, $sLogin)
_IEFormElementSetValue($oPass, $sPass)
$oButton = _IEGetObjByName($oIE, 'login')
_IEAction($oButton, 'click')
_IELoadWait($oIE)
_IENavigate($oIE, "https://group_1")
_IELoadWait($oIE)

$oPost = _IEGetObjByName($oIE, 'xc_message')
_IEFormElementSetValue($oPost, 'AaBbCcDDddEEEeee')
$oPost2 = _IEGetObjByName($oIE, 'view_post')
_IEAction($oPost2, "click")
_IELoadWait($oIE)
_IENavigate($oIE, "https://group_2")
_IELoadWait($oIE)
$oPost3 = _IEGetObjByName($oIE, 'xc_message')
_IEFormElementSetValue($oPost3, 'AaBbCcDDddEEEeee1234566777888899999000000')
$oPost4 = _IEGetObjByName($oIE, 'view_post')
_IEAction($oPost4, "click")


После нажатия на кнопку Войти не дожидаясь входа сразу пытается перейти по 1й ссылке group_1, использовал:

Код:
While _IEPropertyGet($oIE, "busy") = True
    Sleep(50); wait while IE is busy
WEnd

и
Код:
;просто
Sleep(4000)

или
Код:
_IENavigate($oIE, "https://group_1") ;с различнымы параметрами
_IELoadWait($oIE) ;с различнымы параметрами

+ если присоединиться к уже авторизованному окну то дальше 1й группы не идет или переходит ко 2й раньше времени :scratch:
вот чувствую, что тут что-то простое и элементарное
 
Автор
C

chernobeloe

Новичок
Сообщения
33
Репутация
0
Пытаюсь решить преждевременный переход по ссылкам встраивая функцию слежки изменения адресной строки, но пока все тщетно
Код:
;пример
#include <IE.au3>

$sLogin = '[email protected]'
$sPass = 'password'
$sUrl = "site.com"

$Previous_URL = $sUrl
$Present_URL = ""

$oIE = _IECreate($Previous_URL)
;WinSetState($hWnd, "", @SW_MAXIMIZE)
$hWnd = _IEPropertyGet($oIE, "hwnd")

$oLogin = _IEGetObjByName($oIE, 'email')
$oPass = _IEGetObjByName($oIE, 'pass')
_IEFormElementSetValue($oLogin, $sLogin)
_IEFormElementSetValue($oPass, $sPass)
$oButton = _IEGetObjByName($oIE, 'login')
_IEAction($oButton, 'click')

While IsHWnd($hWnd)

	$oIE = _IEAttach($hWnd,"embedded")

    $Present_URL = _IEPropertyGet($oIE, "locationurl")

    If $Previous_URL <> $Present_URL  Then
		_IENavigate($oIE, "http://autoit-script.ru/")
		;some actions
    $Previous_URL = $Present_URL
	EndIf
	If $Previous_URL <> $Present_URL  Then
		_IENavigate($oIE, "https://www.autoitscript.com")
		;some actions
    $Previous_URL = $Present_URL
	EndIf
	If $Previous_URL <> $Present_URL  Then
		_IENavigate($oIE, "https://google.ru/")
		;some actions
    $Previous_URL = $Present_URL
	EndIf

WEnd
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Следите за элементом который должен появится после того, как страница загрузится/вход выполнится
 
Автор
C

chernobeloe

Новичок
Сообщения
33
Репутация
0
Вот что смог состряпать, только работают они по отдельности, не получается объединить

Код:
#include <IE.au3>

$sLogin = '[email protected]'
$sPass = 'password'
$sUrl = "m.facebook.com"

$oIE = _IECreate($sUrl)
$hWnd = _IEPropertyGet($oIE, "hwnd")
WinSetState($hWnd, "", @SW_MAXIMIZE)

$oLogin = _IEGetObjByName($oIE, 'email')
$oPass = _IEGetObjByName($oIE, 'pass')
_IEFormElementSetValue($oLogin, $sLogin)
_IEFormElementSetValue($oPass, $sPass)
$oButton = _IEGetObjByName($oIE, 'login')
_IEAction($oButton, 'click') ;вход


Код:
_IEAttach("Facebook")
_IENavigate($oIE, "https://m.facebook.com/groups/1/") ;1

$oPost3 = _IEGetObjByName($oIE, 'xc_message')
_IEFormElementSetValue($oPost3, 'AaBbCcDDddEEEeee1234566777888899999000000')
$oPost4 = _IEGetObjByName($oIE, 'view_post')
_IEAction($oPost4, "click")


Код:
_IEAttach("Facebook")
_IENavigate($oIE, "https://m.facebook.com/groups/2/") ;2

$oPost5 = _IEGetObjByName($oIE, 'xc_message')
_IEFormElementSetValue($oPost5, 'AaBbCcDDddEEEeee1234566777888899999000000')
$oPost6 = _IEGetObjByName($oIE, 'view_post')
_IEAction($oPost6, "click")


Код:
#include <IE.au3>
Global $oLinks, $oForm, $oIE, $sURL, $iFlag = 0
$oIE = _IEAttach("Facebook")
If @error Then Exit 1

$oLinks = _IETagNameGetCollection($oIE, "a")
If @error Then Exit 2
$iFlag = 0
For $oLink In $oLinks
    If StringInStr(_IEPropertyGet($oLink, "outertext"), "Logout") > 0 Then
        $iFlag = 1
        _IEAction($oLink, "focus")
        _IEAction($oLink, "click") ;выход
        ExitLoop
    EndIf
Next
If Not $iFlag Then Exit 3


как можно объединить это все с проверкой элементов на странице, которая загружается после каждой действий и с последующей операцией?
 
Верх