_IELoadwait scheint nicht zu greifen

  • Hallo an Alle !

    Das ist mein erster Versuch mit Autoit. Inspiriert durch einen Beitrag in der CHIP zur Abfrage eines Bankkontos.
    Also seid gnädig mit mir, wenn ich Dusselfehler gemacht habe.

    Zu meinem Problem:

    Ich möchte bei Rebuy den Wert einer Liste von Büchern abfragen. Im Gegensatz zu Momox bietet Rebuy dazu nichts an.

    Lasse ich den Aufruf der Msgbox weg, wird die Variable '$oLinkOK' nicht gefüllt. Ist der Aufruf aktiviert, funktioniert alles
    wie gewünscht und ich kann aus '$body' alle Daten auslesen. Natürlich ist es lästig bei ca. 150 Büchern jedesmal die
    Msgbox zu bestätigen.

    Wie kann ich den Aufruf der Msgbox vermeiden ?

    Danke für alle Anregungen !

    $oIE = _IECreate("", Default, 1)
    _IENavigate($oIE, "http://www.rebuy.de/verkaufen?q=3453209613", 1)
    _IELoadWait($oIE)
    $oLinks = _IELinkGetCollection ($oIE)
    $iNumLinks = @extended
    MsgBox(0, "Link Info", $iNumLinks & " links found")
    For $oLink In $oLinks
    if StringRight ($oLink.href , 10) = "-verkaufen" Then
    $oLinkOK = "http://www.rebuy.de"&$oLink.href
    EndIf
    Next

    _IENavigate($oIE, $oLinkOK, 1)
    _IELoadWait($oIE)
    $body = _IEBodyReadHTML($oIE)

    Einmal editiert, zuletzt von Hotwheels (27. Februar 2011 um 20:02)

  • Hallo Hotwheels,

    herzlich willkommen im Forum und viel Spass mit AutoIt.

    Hier kannst du dir die deutsche Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee

    und jetzt zu deiner Frage; eigentlich hast d ja doppelt gemoppelt den _IENaviagte hast du ja auch schon angewiesen zu warten bis die Seite geladen hat.

    Zitat von Aus Bemerkungen zu _IELoadWait

    Manche Sicherheitseinstellungen des Browsers können unter Umständen _IELoadWait daran hindern, dass das Skript erst fortgesetzt wird, wenn die Seite fertig geladen wurde. Dies kann Fehlermeldungen zur Folge haben. In diesen Fällen sollte man auf _IELoadWait() verzichten und stattdessen auf alternative Methoden ausweichen, um auf das Fertigstellen des Ladevorgangs einer Webseite zu warten. Dies kann z.B. durch Sleep(), Auslesen der Browser-Status-Bar oder anderen Methoden erreicht werden

    mfg autoBert

  • Manchmal braucht man nur einen Schubs in eine andere (Denk-) Richtung.
    So geht es !

    Wie kann ich den Beitrag als gelöst kennzeichnen ?

    $oLinkOK = ""
    ...
    while ($oLinkOK = "")
    For $oLink In $oLinks
    if StringRight ($oLink.href , 10) = "-verkaufen" Then
    $oLinkOK = "http://www.rebuy.de"&$oLink.href
    ExitLoop
    EndIf
    Next
    WEnd

  • Hallo hotwheel,

    den Thread kannst du auf gelöst setzten indem du den 1. Beitrag bearbeitest, Präfix (nähe Überschrift) änderst und danach speicherst (absenden klicken)

    mfg autoBert