AutoIt: _IE.au3

09/27/2015 13:41 TheKingTurko#1
Hallo Leute :D

Habe ein kleines Problem. Undzwar, kann ich im Code nicht mehr weiterarbeiten.
Es kommt wie ein kleiner Stopp, und es wird danach kein Befehl mehr ausgeführt.
Code:
#include <IE.au3>
#include <Array.au3>
#include <String.au3>
#include <MsgBoxConstants.au3>
#RequireAdmin


$name = "blabla"
$pw = "tralalal"
$server = "s133-de.ogame.gameforge.com"

$oIE = _IECreate("http://de.ogame.gameforge.com/")
_IELoadWait($oIE,0,30000)

$oForm = _IEFormGetCollection($oIE, 0)
$oUsername = _IEFormElementGetObjByName($oForm,"login")
$oPassword = _IEFormElementGetObjByName($oForm,"pass")
$oServer = _IEFormElementGetObjByName($oForm,"uni")
_IEFormElementSetValue($oUsername, $name)
_IEFormElementSetValue($opassword, $pw)
_IEFormElementSetValue($oServer, $server)
Sleep(1111)
MsgBox(0,"","1") ;Sieht man noch
_IEFormSubmit($oForm) ; Befehl wird noch ausgeführt
MsgBox(0,"","2") ; Hier und weiter unten wird garnichts mehr aufgerufen.
_IELoadWait($oIE,0,8000)

MsgBox(0,"","3")

_IELinkClickByText($oIE,"Anlagen") ; Nur als Versuch
_IENavigate($oIE,"http://s133-de.ogame.gameforge.com/game/index.php?page=resources") ;Bevorzuge diesen mehr als "ClickByText", kommt aber nicht bis hierhin
_IELoadWait($oIE,0, 8000)

_IEQuit($oIE)
Zum 2. MSGBOX kommt er nichtmehr. Aber der Script läuft noch weiter. Habe schon Referenzen der Funktionen auf der AutoIt Seite angeschaut, nichts darüber gefunden. Ich dachte es könnte am
Code:
_IEFormSubmit
liegen, doch auch nichts gefunden..

freue mich auf eine baldige Antwort
09/27/2015 13:49 alpines#2
Statt die Form zu submitten kannst du auch das Submit-Objekt mittels der ID und _IEGetObjById und einem anschließenden _IEAction($oObject, "click") und einem darauffolgenden _IELoadWait($oIE) ersetzen.

Die 2. MsgBox wird nicht aufgerufen weil der wait Parameter auf 1 steht und solange gewartet wird bis die Form abgesendet werden kann was nicht der Fall ist.
09/27/2015 13:52 TheKingTurko#3
Quote:
Originally Posted by alpines View Post
Statt die Form zu submitten kannst du auch das Submit-Objekt mittels der ID und _IEGetObjById und einem anschließenden _IEAction($oObject, "click") und einem darauffolgenden _IELoadWait($oIE) ersetzen.

Die 2. MsgBox wird nicht aufgerufen weil der wait Parameter auf 1 steht und solange gewartet wird bis die Form abgesendet werden kann was nicht der Fall ist.
Das erste habe ich auch schon gelesen, werde ich mal so versuchen.

Aber die Form wird abgesendet? Ich bin, nach dem ausführen des Scripts, auf dem Startbildschirm

Mit der _IEAction alles geklappt, danke dir.. Nur verstehe ich nicht wieso das mit Submit nicht geht, der Formular wird ja abgeschickt und ich bin danach eingeloggt. Danke dir für die Antwort

Hab ein neues Problem
Ich glaube ich komme nur mit der SessionID nichtmehr soweit

Quote:
_IENavigate($oIE,"http://s133-de.ogame.gameforge.com/game/index.php?page=resources")
_IELoadWait($oIE,0, 8000)

$HTML = _IEDocReadHTML($oIE)
$session = _StringBetween($HTML,'var session="','";')
_ArrayDisplay($session)





_IENavigate($oIE,"http://s133-de.ogame.gameforge.com/game/index.php?page=resources&modus=1&type=2&menge=1&token="+$session[0])
_IELoadWait($oIE,0, 8000)
Sleep(5000)
Muss ich auf mehrere Dinge achten? Ich kann keine Gebäude mit dem Script bauen. Auch geht es nicht, wenn ich den Link manuell einfüge und die entsprechende SessionID auch. Gefunden habe ich den Link mit LiveHTTP Headers - Firefox
09/27/2015 22:44 alpines#4
Vielleicht ändert die sich ja von Seite zu Seite, parse die einfach immer neu.