ff.au3 vergisst den Connect()

  • Hallo zusammen,
    nachdem ich es nun heute morgen endlich geschafft habe, die checkboxen auszuwählen, bin ich jetzt auf ein neues Problem gestoßen...

    Und zwar vergisst Autoit, respektive Mozrepl, dass mein Programm mit dem Firefox bereits verbunden ist.

    Der Ablauf im Einzelnen:
    Er klickt auf das Bild des Kalenders und landet im Anschluss in diesem.
    Danach soll er, was er dann nicht mehr tut, die Checkboxen auswählen, das Formular absenden und danach zum nächsten Monat springen.
    Das Problem ist, dass er die Checkboxen im Formular nicht ausfüllt, aber das Formular absendet. Danach folgt allerdings kein Klick auf die nächste Seite... Die _FF-Funktionen einzeln funktionieren tadellos. Nur hintereinander gehts ab der zweiten nicht mehr...

    Kann mir irgendjemand hierbei helfen? Ich bin am Verzweifeln :(

    LG,
    der Robert

    Hier der Quellcode:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ff.au3>

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

    $Form1 = GUICreate("Terminplaner", 281, 487, 201, 128)
    $Tab1 = GUICtrlCreateTab(0, 0, 281, 487)
    GUICtrlCreateTabItem("Kalender")
    $grpWeekEnd= GUICtrlCreateGroup("Wochenende", 8, 28, 257, 65)
    $chkSatur = GUICtrlCreateCheckbox("Samstag", 16, 44, 150, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    $chkSun = GUICtrlCreateCheckbox("Sonntag", 16, 68, 150, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $cmdStart = GUICtrlCreateButton("Starten", 95, 360, 80, 25)
    GUISetState(@SW_SHOW)
    _FFConnect("127.0.0.1", 4242, 60000)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $cmdStart
    _Wochenende()

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

    EndSwitch
    WEnd

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

    _FFDisConnect()

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

    Func _Wochenende()
    If _FFIsConnected() Then

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

    ; Der Klick funktioniert noch
    _FFImageClick("images/kalender/januar.jpg", "src")
    _FFLoadWait(3000, 3500) ; Warten bis die Seite geladen ist

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

    ; Hier hört der Code schon auf zu funktionieren, die Befehle werden nicht mehr weitergeleitet.

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

    If BitAnd(GuiCtrlRead($chkSatur), $GUI_CHECKED) Then
    _FFXPath("/html/body/div[3]/div/div[4]/table/tbody/tr[3]/td/table/tbody/tr[3]/td[7]/input", "checked=true") ; Samstag
    EndIf

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

    If BitAnd(GuiCtrlRead($chkSun), $GUI_CHECKED) Then
    _FFXPath("/html/body/div[3]/div/div[4]/table/tbody/tr[3]/td/table/tbody/tr[4]/td[7]/input", "checked=true") ; Sonntag
    EndIf

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

    _FFFormSubmit()
    Sleep(1000)

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

    _FFLinkClick("indexKalender.php?tpl=next", "href", True)

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

    EndIf
    EndFunc

    [/autoit]
  • Hast du es auch so probiert?

    [autoit]

    If GUICtrlRead($chkSatur) = $GUI_CHECKED Then
    _FFXPath("/html/body/div[3]/div/div[4]/table/tbody/tr[3]/td/table/tbody/tr[3]/td[7]/input", "checked=true") ; Samstag
    ElseIf GUICtrlRead($chkSun) = $GUI_CHECKED) Then
    _FFXPath("/html/body/div[3]/div/div[4]/table/tbody/tr[3]/td/table/tbody/tr[4]/td[7]/input", "checked=true") ; Sonntag
    EndIf

    [/autoit]
  • Hast du es auch so probiert?

    [autoit]

    If GUICtrlRead($chkSatur) = $GUI_CHECKED Then
    _FFXPath("/html/body/div[3]/div/div[4]/table/tbody/tr[3]/td/table/tbody/tr[3]/td[7]/input", "checked=true") ; Samstag
    ElseIf GUICtrlRead($chkSun) = $GUI_CHECKED) Then
    _FFXPath("/html/body/div[3]/div/div[4]/table/tbody/tr[3]/td/table/tbody/tr[4]/td[7]/input", "checked=true") ; Sonntag
    EndIf

    [/autoit]


    Jetzt ja. Aber es ändert nichts an dem Problem :(

    Ich habe mal experimentellerweise ein _FFConnect("127.0.0.1, 4242, 60000") vor das erste _FFXPath() gemacht, und siehe da: jetzt geht es! Aber das Problem ist, dass das Connecten mit Firefox jedes mal ewig dauert, und eigentlich sollte einmal connecten beim Start des Programmes ausreichend sein (laut so ziemlich jeder Dokumentation).

    Also ist ein neuer Connect auch keine Lösung, da es sonst zu lange dauert und händisch wahrscheinlich schneller gehen würde :thumbdown: