.IE Schleifenproblem

  • Hallo zusammen,

    wieder stehe ich vor einem problem und dazu brauche ich Eure Hilfe.
    Für eine Abfrage möchte ich den Pagetitel abfragen.
    Da die Seite aber lädt und die Then-Anweisung erstmal false geht, möchte ich das die Else-Anweisung einfach einen Sleep(1000) einlegt und wieder die Then-Anweisung testet.
    Sollte nach 30 Sekunden die Then-Anweisung noch immer fehlschlagen, soll die Schleife beendet werden.

    AutoIt
    Local $pageTitle = _IEPropertyGet ($oIE,"title")
    Local $result = StringInStr ( $PageTitle, "Mietvertrag")
    Local $timer = TimerInit ()
    Local $timeDiff = 0
    If $result > 0 Then
       $status = 1
       $timeDiff = Round(TimerDiff($timer)/1000 , 2)
       $result = $result & 'search: OK, '
    Else

    Ich habe leider garkeine Idee wie ich das verpacke, kann mir jemand helfen?

    Danke!

  • Klar heißt es If-Anweisung, ich meinte den Then Tiel der If-Anweisung :)

    AutoIt
    Local $pageTitle = _IEPropertyGet ($oIE,"title")
    Local $searchResult = StringInStr ( $PageTitle, "Mietvertrag")
    Local $timer = TimerInit ()
    Local $timeDiff = 0
    While $searchResult = 0 
    Sleep (500)
    Wend
       $status = 1
       $timeDiff = Round(TimerDiff($timer)/1000 , 2)
       $result = $result & 'search: OK, '

    Ist die While-Schleife so richtig? Solange result = 0 also ungleich Mietvertrag, setzt der Sleep ein und überprüft dann wieder result solange bis result = 1 ist, oder?
    In dem Fall result = 1 setzt er dann $status =1, gibt die benötigte Zeit aus.


    Edit:
    Meine Lösung ist definitv unbrauchbar. Evtl. können wir Step by Step vorgehen?
    Habe leider keine Erfahrung mit While-Schleifen aber die Zeilen 1 - 7 sollten doch soweit richtig sein, oder?

    Ausformuliert: Die While Schleife läuft so lange bis der Titel der Seite Mietvertrag enthält. Stimmt es?!

    2 Mal editiert, zuletzt von Mojo (30. Juni 2016 um 15:31)

  • Ausformuliert: Die While Schleife läuft so lange bis der Titel der Seite Mietvertrag enthält. Stimmt es?!

    Wenn sie an der richtigen Stelle ist, ja. Bei dir also nicht. Auch würde ich hier eine Do...Until nehmen:

    AutoIt
    $timer = TimerInit()
    Do
    	$pageTitle = _IEPropertyGet($oIE, "title")
    	$searchResult = StringInStr($pageTitle, "Mietvertrag")
    	Sleep(100)
    Until $searchResult
    ;$status = 1
    $timeDiff = Round(TimerDiff($timer) / 1000, 2)
    $result = $result & 'Wartezeit: ' & $timeDiff