Берусь написать бота для этой игры:
http://www.mist-game.ru/
Сначала нужно пройти авторизацию. С заполнением форм проблем не возникает. Далее вызываем сабмит "Вход". Проблемы начинаются тут. URL не изменился, а вместо полей авторизации сгенерировались ссылки личного кабинета, среди которых нужная - "Играть". Вот что имеется:
эффекта не дает, т.к. сгенерированной ссылки не находит. по-моему надо обновить $oIE, но после
ссылку опять не находит. Когда же пытаюсь в тупую перейти без эмуляции кликов
- ошибка 404. и лишь собственноручно нажав на "Играть" работает как надо, ну или добавив в URL /game.html. Можно ли решить эту задачу без привязки к координатам экрана? Ведь это только начало работы, а в той игре почти все подгружается динамически.
http://www.mist-game.ru/
Сначала нужно пройти авторизацию. С заполнением форм проблем не возникает. Далее вызываем сабмит "Вход". Проблемы начинаются тут. URL не изменился, а вместо полей авторизации сгенерировались ссылки личного кабинета, среди которых нужная - "Играть". Вот что имеется:
Код:
_IELinkClickByText($oIE, 'Играть')
эффекта не дает, т.к. сгенерированной ссылки не находит. по-моему надо обновить $oIE, но после
Код:
_IEAttach(_IEPropertyGet($oIE, "locationurl"), 'url')
Код:
_IENavigate($oIE, 'http://world.mist-game.ru/game.html')
Код:
#include <IE.au3>
$oIE = _IECreate ("http://world.mist-game.ru/")
$pass = 'pass'
$name = 'name'
$oLogn=_IEGetObjById($oIE, "login")
$oPass=_IEGetObjById($oIE, "pass_input")
_IEFormElementSetValue($oLogn, $name)
_IEFormElementSetValue($oPass, $pass)
$oSubmits = _IETagNameGetCollection($oIE, 'input')
For $oSubmit In $oSubmits
If $oSubmit.value == 'Вход' Then
_IEAction($oSubmit, 'click')
_IELoadWait($oIE)
;$oTitle =_IEPropertyGet($oIE, "locationurl")
_IENavigate($oIE, 'http://world.mist-game.ru/game.html')
;_IELinkClickByText ($oIE, "Играть")
;_IEAction($oIE, 'refresh')
$oIE = _IEAttach(_IEPropertyGet($oIE, "locationurl"), 'url')
_IENavigate($oIE, 'http://world.mist-game.ru/game.html')
$oLinks = _IELinkGetCollection ($oIE)
_IELinkClickByText($oIE, 'Играть')
For $oLink In $oLinks
ConsoleWrite($oLink.innertext)
Next
ExitLoop
EndIf
Next