Hallo,
ich bin leider noch ein Neuling in AutoIT und kämpfe deswegen wahrscheinlich peinlicherweise an nem relativ schnell lösbaren Problem
Ich will, dass AutoIT eine Seite im IE annavigiert und wartet bis dort alles komplett geladen ist. Das Problem ist, dass dort intern ein iFrame aufgerufen wird und der IE nicht meldet dass im Hintergrund ein Ladezyklus stattfindet.
So wartet der IE bisher:
$IE = _IECreate($portalURL_complete, 1, 1, 1)
$title = WinGetTitle("[active]")
WinWait($title)
If Not WinActive($title) Then WinActivate($title)
WinWaitActive($title)
_ClickOkButton($IE)
Momentan überbrücke ich das mit einen Sleep von 20 Sekunden, aber da ich die Zeit des ladens messen muss, ist das eher suboptimal Hat jemand vielleicht eine Idee wie man den IE solange warten lassen kann? Die Seite besitzt insgesamt 3 iframes. Das obere Drittel, die restlichen unteren 2 drittel und in dem unteren 2 drittel ist nochmal ein iframe. Alle nur per IDs identifizierbar.
Der Button der noch angesprochen werden soll, ist nämlich genau in diesem noch zu ladenden iFrame zu finden. Ich bekomme immer einen Fehlerwert von 3 zurück (($_IEStatus_InvalidDataType) = Invalid Data Type)
momentan spreche ich den Button nicht erfolgreich folgt an:
Func _ClickOkButton($IE)
Sleep(20000)
$obj_iframe = _IEGetObjById($IE,"id_iframe2")
$obj_iframe2 = _IEGetObjById($obj_iframe,"Id_iframe3")
$button = _IEGetObjById($obj_iframe2, "Button_OK")
_IEAction($button, "click")
MsgBox(0, "Error", @error)
EndFunc ;==>_ClickOkButton
Danke schonmal für die Hilfe
Peter