Warten bis Webseiten fertig geladen sind

  • Warten bis Webseiten fertig geladen sind


    Ich habe ein Kleines Script geschrieben das mich automatisch auf verschiedene Webseiten einloggt
    das Problem ist das die zeit bis eine Seite Geladen ist immer unterschiedlich ist

    Gibt es eine Möglichkeit festzustellen wann eine Seite fertig geladen ist?

    Gerade benutze ich (sleep) was leider auch nicht immer ausreicht.

    Ps Antivir erkennt meine Scripte, seit gestern als Trojaner

  • such mal im forum nach _IECreate oder _IEAttach.
    es sind schon etliche beispiele hier vorhanden.
    oder schau in der IE.AU3 mal rein dazu, die functions dort sind recht gut dokumentiert.

    wenn du nicht klarkommst, einfach mal dein script hier posten, dann kann man besser auf deine bedürfnisse eingehen.

    gruss exberliner

  • danke für die schnelle Antwort ich werde mal schauen ob ich was finde

    hier noch der Code login und Passwort sind durch (x) unkendlich gemacht

    [autoit]


    Run("C:\Programme\Mozilla Firefox\firefox.exe")

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

    Opt("WinWaitDelay",100)
    Opt("WinTitleMatchMode",4)
    Opt("WinDetectHiddenText",1)
    Opt("MouseCoordMode",0)
    WinWait("Mozilla Firefox Startseite - Mozilla Firefox","")
    If Not WinActive("Mozilla Firefox Startseite - Mozilla Firefox","") Then WinActivate("Mozilla Firefox Startseite - Mozilla Firefox","")
    WinWaitActive("Mozilla Firefox Startseite - Mozilla Firefox","")
    MouseMove(294,69)
    MouseDown("left")
    MouseUp("left")
    Send("{BACKSPACE}https://autoit.de/www.ogame.de{ENTER}")
    WinWait("OGame.de - Mozilla Firefox","")
    If Not WinActive("OGame.de - Mozilla Firefox","") Then WinActivate("OGame.de - Mozilla Firefox","")
    WinWaitActive("OGame.de - Mozilla Firefox","")
    sleep(500)
    Send("111{TAB}xxx{TAB}xxx{ENTER}")
    Send("{CTRLDOWN}t{CTRLUP}")
    WinWait("Mozilla Firefox","")
    If Not WinActive("Mozilla Firefox","") Then WinActivate("Mozilla Firefox","")
    WinWaitActive("Mozilla Firefox","")
    Send("www.ogame.de{ENTER}")
    WinWait("OGame.de - Mozilla Firefox","")
    If Not WinActive("OGame.de - Mozilla Firefox","") Then WinActivate("OGame.de - Mozilla Firefox","")
    WinWaitActive("OGame.de - Mozilla Firefox","")
    sleep(500)
    Send("555{TAB}xxx{TAB}xxx{ENTER}")
    send("{CTRLDOWN}t{CTRLUP}")
    WinWait("Mozilla Firefox","")
    If Not WinActive("Mozilla Firefox","") Then WinActivate("Mozilla Firefox","")
    WinWaitActive("Mozilla Firefox","")

    [/autoit]
  • Das Problem mit AntiVir habe ich auch - die haben sogar vor kurzem SpamPal als Virus erkannt...... Kommt leider immer mal wieder vor, ansonsten bin ich aber damit zufrieden.

    Da hilft wohl nur aussitzen oder ausschließen aus Suchlauf oder ausgeben einer Nachricht an Antivir.

    Viele Grüße
    Carsten

  • Nur eins muss dir klar sein -

    du musst dein komplettes Script umschreiben, wenn du es mit der IE.au3 machst!

    Und du MUSST den Internet Explorer (6) benutzen!

    Derzeit gibt es noch kein FF.au3 :weinen:

    Ich freu mich aber schon drauf :musik1:


    Mfg


    <--- Huggy :hammer:

  • Schade ich wollte eigentlich schon denn Firefox2 benutzen

    ich habe leider schon den IE7 kann ich die IE.au3 trotzdem benutzen


    ist so was für den Firefox in Entwicklung gibt’s vielleicht schon eine beta??

    • Offizieller Beitrag

    Hallo!

    Für Firefox gibt es keine wirkliche Beta, aber es gibt ein Plugin, mit dem man den FF als ActiveX-Objekt erreichbar machen kann, allerdings ist das wohl noch seehr buggy und auch nicht so komfortabel aus AutoIt heraus zu nutzen wie die IE-Funktionen, daher eher nicht zu empfehlen.

    IE7 machte bisher viele Probleme, weil M$ da einiges an der internetn Struktur geändert hat. Wie es in der endgültigen Fassung aussieht, weiß ich aber nicht genau.
    Die IE.au3 kann komplett im Hintergrund arbeiten. Wenn man also alles automatisiert, dann ist der Browser eigentlich egal. Und man kann nebenher sogar noch weiterarbeiten...

    peethebee

    p.s. ich sollte mal die Anzahl der Leute erfassen, die wegen OGame AutoIt lernen ;)

  • Ok ich hab mich jetzt dazu entschlossen das ganze auf dem IE6 zu probieren

    kann mir einer mal schnell ein Script geben mit dem die Sicherheitsstufe vom IE so angepasst wird das nicht ständig diese Script Meldungen kommen ?? manuell schaffe ich das nicht

    und welche Autoit Version sollte ich benutzen die Final oder die beta

    Ps ich hoffe das ist keine dumme frage aber wo beckomme ich die IE.au3 her :rolleyes:

    Einmal editiert, zuletzt von kubus (2. Dezember 2006 um 14:27)

  • Ie.au3 ist automatisch bei der neusten Beta dabei!

    Benutz die Beta, ausser es gibt probleme ;)


    Wieso kannst du die Sicherheitsstufe nicht manuell anpassen`?

    Wegen Eingeschränkter recht?

    Wenn ja, ist das mit autoit nicht möglich :musik2:


    mfG Huggy

    • Offizieller Beitrag

    Hi,

    hier ein erster Start:

    [autoit]


    #include <IE.au3>
    $sUsername = "Username"
    $sPassword = "Password"
    $sUrl = "http://wwww.ogame.de"
    $oIE = _IECreate ($sUrl,0,1,1,0)
    $oHWND = _IEPropertyGet($oIE, "hwnd")
    WinSetState ($oHWND, "", @SW_MAXIMIZE )
    Send("{tab}"&$sUsername&"{tab}"&$sPassword)

    [/autoit]

    So long,

    Mega

  • Ich habe das früher mal so gelöst, dass ich eine Function geschrieben habe, die Abfragt, wie der MausCursor ist. Wenn die Uhr da ist, dann macht er Pause, wenn sie weg ist, geht es weiter! War eigentlich ziemlich genial ;)

    • Offizieller Beitrag

    Hi,

    dein Ansatz ist aber nicht wirklich sicher. Der Cursor ist Fensterbezogen. D.h. wenn du etwas automatisiert auf einem z.B. IE Fenster machen willst du dich nach dem Cursor richtest, dann kann es passieren, dass der Focus wechselt und damit auch dein Cursor, dann würde dein Skript weiterarbeiten, obwohl die Seite noch gar nicht vollständig geladen wurde.

    So long,

    Mega

  • mhhhh...benutz lieber das hier...mit tab geht das ganze nur schief....

    [autoit]

    $sUrl = "http://ogame.de/portal/?lang=de&frameset=1"
    $oIE = _IECreate ($sUrl,0,1) ;0,1 visible...0,0 invisible
    $oHWND = _IEPropertyGet($oIE, "hwnd");bingt nichts wenn ie unsichtbar
    WinSetState ($oHWND, "", @SW_MAXIMIZE );bingt nichts wenn ie unsichtbar
    $oForm = _IEFormGetCollection ($oIE, 0);oder $oForm = _IEFormGetCollection ($oIE, "formular") möglich

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

    $oUniversum = _IEFormElementGetObjByName ($oForm, "Uni")
    _IEFormElementOptionSelect($oUniversum, "1. Universum",1,"byText");wählt "1. Universum" aus

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

    $oLogin = _IEFormElementGetObjByName($oForm, "login");sucht eingabefeld mit namen "login"
    $sUsername = InputBox ( "Username", "Bitte geben Sie Ihren Benutzernamen ein:" , "Benutzername", " ", 50,140);öffnet Inputbox zum eingeben für Usernamen
    _IEFormElementSetValue ($oLogin, $sUsername)

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

    $oPassword = _IEFormElementGetObjByName($oForm, "pass");sucht eingabefeld mit namen "pass"
    $sPassword = InputBox ( "Passwort", "Bitte geben Sie Ihr Passwort ein:" , "passwort" , "*" , 50, 140);öffnet Inputbox zum eingeben für Passwort
    _IEFormElementSetValue ($oPassword, $sPassword)
    $oForm.fireEvent("onSubmit");das hatte ich vergessen!!! (edit)
    _IEFormSubmit ($oForm);bestätigt form

    [/autoit]


    müsste funzen habs nicht nochmal ausprobiert muss jetzt los...

    //edit hatte was vergessen jetzt gehts...aber des mit den frames hab ich noch nicht wirklich so hinbekommen :/

  • Das heißt, es gibt noch keine schöne Möglichkeit, beim FireFox oder Opera herauszufinden, wann die Seite fertig geladen ist. Richtig!?

    Welche Methoden bieten sich da an oder war meine Idee schonmal nicht schlecht?

    • Offizieller Beitrag

    Hi,

    hier mal ein Schnellversuch:

    [autoit]


    Opt("WinTitleMatchMode", 2)

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

    While 1
    Sleep(10)
    check()
    WEnd

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

    Func check()
    If WinActive("Firefox") Then
    If PixelChecksum(1000, 27, 1019, 42) <> 330967017 Then MsgBox(64, "", "Firefox lädt")
    EndIf
    EndFunc ;==>check

    [/autoit]

    Auflösung 1024 * 768

    So long,

    Mega