Anomalie _IECreate MSIE9 AtMail (Webmail)

  • Hallo
    Mit meinem Script will ich mich automatisch (mittels AutoIt) im Webmail einloggen. Bei der Konstellation MSIE9 und dem Webmailprogramm AtMail, bricht der Script in 9 von 10 Versuchen ab.

    [autoit]

    Script bricht ab (Anzeige im Consolenfenster)
    >Running:(3.3.8.1):C:\Program Files\AutoIt3\autoit3.exe "Anomalie_IECreate_MSIE9_AtMail.au3"
    A
    C:\Program Files\AutoIt3\Include\IE.au3 (560) : ==> The requested action with this object has failed.:
    WEnd
    WEnd^ ERROR

    [/autoit]


    Der Test-Script beinhaltet nur das Nötigste. Hingegen ist erwünscht, das Test-eMail selber zu prüfen/nutzen.

    Spoiler anzeigen
    [autoit]

    ;;Anomalie_IECreate_MSIE9_AtMail.au3 12.04.07

    [/autoit] [autoit][/autoit] [autoit]

    #include <IE.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ConsoleWrite("A" & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    ;$oURL=_IECreate("http://www.bluewin.ch/de/email",0,1,1,1)
    ;$oURL=_IECreate("http://webmail.pizza-joker.com",0,1,1,1) ;;via Horde
    $oURL=_IECreate("http://webmail.chez-hampi.ch",0,1,1,1) ;;via AtMail

    [/autoit] [autoit][/autoit] [autoit]

    ConsoleWrite("B" & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    Sleep(300)

    [/autoit] [autoit][/autoit] [autoit]

    _IEPropertySet($oURL,"top",0)
    _IEPropertySet($oURL,"left",0)
    _IEPropertySet($oURL,"width",@DesktopWidth)
    _IEPropertySet($oURL,"height",@DesktopHeight-20)

    [/autoit] [autoit][/autoit] [autoit]

    ConsoleWrite("ende" & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    ;;ende

    [/autoit]

    Die Anomaliequelle ist im ersten Schritt in der Include IE.au3 zu suchen. Habe dort Debug-Eingriffe gemacht um besser zu sehen was abläuft für die Anzeige wie immer im Konsolenfenster.
    [Blockierte Grafik: http://www.pizza-joker.com/autoit/debug_eingriff.jpg]

    Und so müsste dann der erfolgreiche Ablauf im Konsolenfenster aussehen.

    [autoit]

    Script erfolgreich (Anzeige im Consolenfenster)
    >Running:(3.3.8.1):C:\Program Files\AutoIt3\autoit3.exe "Anomalie_IECreate_MSIE9_AtMail.au3"
    A
    1 :1|0
    2 :3|0
    2-:4|0
    B
    ende

    [/autoit]

    Wie wird man rasch und einfach "erfolgreich" ?

    2 Mal editiert, zuletzt von supernova (24. April 2012 um 14:20)

  • Der "Send" und "Sleep" Teil in Deinem Skript ist doch ziemlich trial-and-error. Mach doch auch diese Funktionen mit dem IE UDF. Das funktioniert dann verlässlicher.

  • Zitat

    Mit meinem Script will ich mich automatisch (mittels AutoIt) im Webmail einloggen.

    Ich interpretiere das als: IE starten, WebSite aufrufen, Name und Passwort eingeben und einen Button drücken.
    Das Füllen der Formularfelder etc. passiert derzeit mit Send und Sleep. Jetztr braucht nur der IE etwas länger zu brauchen, eine andere Anwendung den Focus wegzunehmen und schon funktioniert das Spiel nicht mehr ... Daher: Formularfelder füllen und Buttonklicks auch mit dem IE UDF.

  • stelle tatsächlich fest, _IECreate (der _IECreate ruft intern auch die funktion _IELoadWait auf) stürzt ab.

    aber nur bei win7/msie9, bei meinem alten laptop mit XP/msie8 geht es bestens. gut, der läuft auch merklich langsamer.

    bis jeweilen autoit abbricht braucht es immer so plusminus 5 zyklen (SLEEP(100)) innerhalb der udf IE.au3. also 0,5 sekunden. dieser abbruch könnte aber auch ein autoit-externer timeout sein (z.B. die benutzte winapi).

  • Wo es auch immer wieder Probleme gibt:
    Wenn Windows 64 bit ist und die Applikation die über COM angesprochen wird ist 32 bit, dann muss das AutoIt Skript für 32 bit übersetzt/ausgeführt werden.

  • Damit "supernova" rasch "erfolgreich" sein kann und nicht über sinnlosen texten brüten muss, hier eine echte Alternative zum _IECreate. Das Grundproblem ist damit allerdings nicht behoben/gelöst und alle sollten weiter forschen und es auch echt mal durchführen.

    Spoiler anzeigen
    [autoit]

    ;;Anomalie_IECreate_MSIE9_AtMail_Alternative.au3 12.04.07

    [/autoit] [autoit][/autoit] [autoit]

    #include <IE.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;$cURL="http://www.bluewin.ch/de/email"
    ;$cURL="http://webmail.pizza-joker.com" ;;via Horde
    $cURL="http://webmail.chez-hampi.ch" ;;via AtMail

    [/autoit] [autoit][/autoit] [autoit]

    ConsoleWrite("A" & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    ;;alternative zum _IECreate
    ShellExecute("iexplore.exe",$cURL)
    WinWait($cURL)
    Sleep(1000)
    $oURL=_IEAttach($cURL,"url")
    ;;alternative zum _IECreate

    [/autoit] [autoit][/autoit] [autoit]

    ConsoleWrite("B" & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    Sleep(300)

    [/autoit] [autoit][/autoit] [autoit]

    _IEPropertySet($oURL,"top",0)
    _IEPropertySet($oURL,"left",0)
    _IEPropertySet($oURL,"width",@DesktopWidth)
    _IEPropertySet($oURL,"height",@DesktopHeight-20)

    [/autoit] [autoit][/autoit] [autoit]

    ;;ende

    [/autoit]

    Einmal editiert, zuletzt von wirr4all (10. April 2012 um 15:44)

  • ... und nicht über sinnlosen texten brüten muss ...

    Wieso sinnlos? Hier versuchen alle dem OP zu helfen und ihn an den bereits gemachten Erfahrungen teilhaben zu lassen. Die Hinweise der Forumuser bringen ihn mit der Zeit auch dahin, dass er verlässliche Skripte schreiben kann. Damit es dann nicht mehr heissen muss: "Mein Skript funktioniert nur 9 von 10 mal ..."

  • Ja "wirr4all", hast mir vorerst sehr geholfen mit deiner konstruktiven Alternative. Du hast recht, man muss den Testscript echt mal selber "laufen lassen" und auch in den IE.au3 hineinschauen und es viele Male nachvollziehen, bis man überhaupt mitreden kann. Eine Lösung ist immer/nur Quellcode/Source, nichts anderes. Danke dass du dich heftig und wirkungsvoll engagiert hast.

    Hinlenken möchte ich "water" eher auf mein ähnliches/gleiches Thema "bei hotmail nur nachsehen ob eMails vorhanden" [ offen ] bei hotmail nur nachsehen ob eMails vorhanden Eine solche Belebung dort wäre vonnöten.

  • Sehe das Forum auch nicht als schwatzi-schwatzi Twitter-Chat für einsame, aufgeblasene, mit zwar vielen aber hohlen Einträgen.
    Mein konstruktiver Beitrag soll daher sicher über den schwachen Rat, den PC doch erst mal einzuschalten, hinaus gehen.
    Das habe ich selber ausprobiert:
    Mit der Erhöhung in der fraglichen Zeile im IE.au3 von SLEEP(100) auf SLEEP(2000), also 2-Sekunden, bleiben bei mir die Fehler im IE.au3 zuverlässig weg.
    die eingetragenen werte haben sich im test als minimum ergeben bei XPpro und win7pro32
    [Blockierte Grafik: http://www.pizza-joker.com/autoit/notloesung.jpg] Ist aber schon eine etwas lange Zeit für Schnellschiesser, vor allem

    für die anderen Aufrufe von _IECreate.
    Würde die IE.au3 kopieren und umbenennen in MyIE.au3 und entsprechend includen #include <MyIE3.au3>

    Denke dies ist ein echter Bug von Autoit und müsste dort gemeldet/bearbeitet werden.

  • habe soeben die beta 3.3.9.4 installiert und damit geht es fehlerfrei ohne eingriffe (ebenso mit der beta 3.3.9.2).
    vergleicht man die beiden IE.au3 (3.3.8.1 und 3.3.9.4) sind beide identisch. der fehler lag wohl so wie vermutet im hardcore.