Что нового

IE, на странице отображается другой код html

mr.Gbabak

Осваивающий
Сообщения
257
Репутация
23
Добрый день.
Столкнулся с такой ситуацией, когда содержимое окна IE отображает совсем не то, что есть в коде html.
Возможно это JS, но не уверен.
Прошу помочь разобраться, ибо дальнейшая автоматизация, для моих знаний, не представляется возможной.

Сайт (текстовая игра он-лайн http://amuletdrakona.ru/g.php?site=connect&login=TripTaker&p=****)

Задача минимум: стабильно нажимать на кнопки.
Предварительные наброски кода:
Код:
#include <IE.au3>
#include <Array.au3>
$personazh = 'http://amuletdrakona.ru/'
;$hWnd = WinWait("AutoIt v3 GUI", "", 5)
$hWnd = WinWait("[class:IEFrame]", "", 1)

WinActivate($hWnd)
$oIE = _IEAttach($hWnd, 'HWND')
;$oIE = _IEAttach($personazh, 'URL')

;MsgBox(0, '', _IEDocReadHTML($oIE)) ; посмотреть содержимое html


$Inputs = _IETagNameGetCollection($oIE, 'input')

For $Input In $Inputs
	ConsoleWrite('class: ' & $Input.classname & @CRLF)
	ConsoleWrite('type: ' & $Input.type & @CRLF)
	ConsoleWrite('name: ' & $Input.name & @CRLF)
	ConsoleWrite('value: ' & $Input.value & @CRLF)
	ConsoleWrite('========================================' & @CRLF)
	If $Input.value = 'Персонаж' Then


		_IEAction($Input, 'click') ; нажатие на кнопку.

		ExitLoop
	EndIf

Next
 
Автор
M

mr.Gbabak

Осваивающий
Сообщения
257
Репутация
23
В общем, добился относительного, стабильного нажатия на кнопки, путем добавления сайта в режим совместимости IE. Но не всегда и не с первого раза.
Тему можно удалить.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
mr.Gbabak
не всегда и не с первого раза
Попробуйте UIAutomate
Код:
#include <UIAutomate.au3>

$hCtrl = ControlGetHandle("[class:IEFrame]", "", "Internet Explorer_Server1")

; клик по ссылке "Продолжить"
$oParent = _UIA_GetElementFromHandle($hCtrl)
$oElement = _UIA_GetControlTypeElement($oParent, "UIA_HyperlinkControlTypeId", "Продолжить")
_UIA_ElementDoDefaultAction($oElement)
; то же самое в одну строку
; _UIA_ElementDoDefaultAction(_UIA_GetControlTypeElement(_UIA_GetElementFromHandle($hCtrl), "UIA_HyperlinkControlTypeId", "Продолжить"))
Sleep(200)

; клик по кнопке "войти в магазин"
_UIA_ElementDoDefaultAction(_UIA_GetControlTypeElement(_UIA_GetElementFromHandle($hCtrl), "UIA_ButtonControlTypeId", "войти в магазин"))
Sleep(200)

; описание магазина
$aText = _UIA_FindAllElements(_UIA_GetElementFromHandle($hCtrl), "ControlType", $UIA_TextControlTypeId)
$sMsg = _UIA_ElementGetPropertyValue($aText[$aText[0]], "Name")
ConsoleWrite($sMsg & @CRLF)
Sleep(200)

; клик по кнопке "выйти на улицу"
_UIA_ElementDoDefaultAction(_UIA_GetControlTypeElement(_UIA_GetElementFromHandle($hCtrl), "UIA_ButtonControlTypeId", "выйти на улицу"))
Sleep(200)
 
Автор
M

mr.Gbabak

Осваивающий
Сообщения
257
Репутация
23
Вот за это огромное спасибо!!!
Прям вообще в тему!
 
Верх