_FFXPath fehleranfällig?

  • funzt denn mein kleines prog bei dir?


    Nö.

    Spoiler anzeigen


    mit _FFConnect vor dem letzen LinkClick:

    Code
    __FFSend: FFau3.xpath=null;try{FFau3.xpath=FFau3.WCD.evaluate("/html/body/div[@id='page_wrapper']/div[@id='page']/div[@id='container']/div[@id='center']/div[1]/div/div/div[1]/table/tbody/tr/td[3]/a",FFau3.WCD,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;}catch(e){'_FFXPath_Error: '+e;};
    __FFRecv: http://www.computerbase.de/forum/faq.php
    __FFSend: try{FFau3.simulateEvent(FFau3.xpath,'MouseEvents','click');}catch(e){'_FFCmd_Err';};
    __FFRecv: 1
    _FFLoadWait: ........ loaded in 2213ms
    +>13:08:54 AutoIT3.exe ended.rc:0
    +>13:08:55 AutoIt3Wrapper Finished
    >Exit code: 0 Time: 12.382


    Und so simpel wie das ist, wüsst ich nicht, was da falsch sein könnte ;(

  • jo stimmt, ein Fehler wird da denke ich nicht drin sein.

    Du hast mir sogar etwas helfen können. Man sollte echt vor jedes FFConnect ein FFDisConnect machen. Bei längeren Programmen kommt es sonst zu Timeouts. Ist mir nämlich passiert und ich wusste einfach nicht woran es lag.

    Aber am besten wär natürlich wenn man am Anfang ein Connect macht und am ende des Progs ein Disconnect und fertig ;)

  • AHHHHHH .... ich könnte in die Tischkante/Tastatur beissen ;(
    Einfach die MozRepl – development branch installieren und freuen weils funzt wie es funzen soll ....
    Hmm .... oder auch nicht :?:

    Einmal editiert, zuletzt von Seldzar (13. März 2010 um 18:42)

  • Nö, das is ne Beta ... wobei ich nu na versuch die 1.02 zu installieren. Bei dem Link wird die 1.00 installiert.
    Die 1.02 gibts nur unter Downloads als Archiv.
    Grüße
    Edith meint, das es man sich das sparen sollte und bei der 1.00 REalse bleiben sollte. Mich nervt es eigentlich eh nur weil

    Zitat

    Die Funktionen laufen "fensterbezogen".
    Wenn du also z.B. per _FFStart ein Programm laufen läßt und manuell ein neues Fenster aufmachst, passiert in dem neuen Fenster gar nichts. Wechseln kannst du zwischen den Fenstern mit den _FFWindow* Funktionen.


    schliesst die Benutzung von _FFConnect() aus ....
    Noch mal Edith:
    mir war grad fad *hüstel* und rauskam das:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------
    Testscript für ffxpath
    #ce ----------------------------------------------------------------------------
    #include
    #include
    Func _laden($Click = 0)
    $vS1 = "/html/body/div[@id='navi_top']/div[1]/ul[1]/li[1]/a"
    $vS2 = "/html/body/div[@id='container']/div[@id='container_content']/div[@id='mitte']/div[@id='mitte_links']/div[@id='mitte_news']/div/h4[1]"
    $vS3 = "/html/body/div[@id='container']/div[@id='container_content']/div[@id='mitte']/div[@id='mitte_links']/div[@id='mitte_news']/div/div[1]/a"
    $vURL = "http://www.heise.de/"
    _FFOpenURL($vURL)
    $vD1 =_FFXpath($vS1 ,"text",2)
    Switch $Click
    Case 0
    _FFOpenURL($vURL&"/newsticker")
    $vD2 = _FFXpath($vS2 ,"text",2)
    Case 1
    _FFLinkClick("7-Tage-News" , "text" )
    $vD2 = _FFXpath($vS2 ,"text",2)
    EndSwitch
    $vD3 = _FFXPath($vS3 , "text" , 2)
    $vMSG = "Oberste News von " & $vD1 & " am " &$vD2 & " : " &$vD3
    Return $vMSG
    EndFunc
    _FFConnect()
    If _FFIsConnected() Then
    $vString1 = _laden(0)
    $vString2 = _laden(1)
    ConsoleWrite('$vString1 = ' & $vString1 & @crlf)
    ConsoleWrite('$vString2 = ' & $vString2 & @crlf)
    Else ; Sonst... (Fehlermeldung!)
    MsgBox(64, "Ein Fehler ist aufgetreten", "Eine Verbindung mit dem Mozilla FireFox war nicht möglich!")
    EndIf

    [/autoit]


    Hab ich auch mal angehängt autoit.de/wcf/attachment/8216/ ..... das Ergebniss:

    Code
    $vString1 = Oberste News von heise online am 14.03.2010 : GDC: Nintendo kombiniert Spaß mit Schrecken
    $vString2 = Oberste News von heise online am :


    Preisfrage: Wieso fehlt bei $vString2 was?

  • Vielleicht so:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------
    Testscript für ffxpath
    #ce ----------------------------------------------------------------------------
    #include <FF.au3>
    #include <array.au3>
    Func _laden($Click = 0)
    $vS1 = "/html/body/div[@id='navi_top']/div[1]/ul[1]/li[1]/a"
    $vS2 = "/html/body/div[@id='container']/div[@id='container_content']/div[@id='mitte']/div[@id='mitte_links']/div[@id='mitte_news']/div/h4[1]"
    $vS3 = "/html/body/div[@id='container']/div[@id='container_content']/div[@id='mitte']/div[@id='mitte_links']/div[@id='mitte_news']/div/div[1]/a"
    $vURL = "http://www.heise.de/"
    _FFOpenURL($vURL)
    $vD1 =_FFXpath($vS1 ,"text",2)
    Switch $Click
    Case 0
    _FFOpenURL($vURL&"/newsticker")
    _FFConnect()
    $vD2 = _FFXpath($vS2 ,"text",2)
    Case 1
    _FFLinkClick("7-Tage-News" , "text" )
    _FFConnect()
    $vD2 = _FFXpath($vS2 ,"text",2)
    EndSwitch
    $vD3 = _FFXPath($vS3 , "text" , 2)
    $vMSG = "Oberste News von " & $vD1 & " am " &$vD2 & " : " &$vD3
    Return $vMSG
    EndFunc
    _FFConnect()
    If _FFIsConnected() Then
    $vString1 = _laden(0)
    $vString2 = _laden(1)
    ConsoleWrite('$vString1 = ' & $vString1 & @crlf)
    ConsoleWrite('$vString2 = ' & $vString2 & @crlf)
    Else ; Sonst... (Fehlermeldung!)
    MsgBox(64, "Ein Fehler ist aufgetreten", "Eine Verbindung mit dem Mozilla FireFox war nicht möglich!")
    EndIf

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Ich hab mittlerweile eine Lösung gefunden, die A funktioniert und B ich keine Ahnung hab, wieso ...
    In der FF.au3 hab ich die Funktion _FFLoadWait() geändert:

    [autoit]

    $_FF_COM_TRACE = $bTrace
    __FFSendJavaScripts(); <<<-- Diese Zeile wurde eingefügt -->>
    Return SetError(0, $iLoadingTime - $_FF_CON_DELAY * 1.4, 1)
    ...
    ConsoleWrite(@CRLF & @CRLF)
    __FFSendJavaScripts(); <<<-- Diese Zeile wurde eingefügt -->>
    Return SetError(__FFError($sFuncName, $_FF_ERROR_Timeout, "Can not check site status."), $iLoadingTime, 0)

    [/autoit]


    Ob es vor dem 2. Return wirklich nötig ist, ist mir unklar ....

  • Hi,
    ich schreib nochmal in dieses Thema,da ich genauso ein Problem habe.
    Ich habe den über mir genannten Code in die FF.au3 Datei kopiert aber es klappt trotzdem nicht.
    Könnte mir jemand die ff.au3 mit dem Code als txt hochladen?
    Denn ich denke ich hab ihn falsch eingefügt :(