[gelöst] Weiteres _FFLinkClick()-Problem

  • Hey,
    ich habe folgendes bizarres Problem.
    Ich kann _FFLinkClick ine meinen Scripten jeweils nur einmal verwenden.

    Hier mal ein Beispiel:

    [autoit]


    #include<FF.au3>
    #include<FFEx.au3>

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

    _FFConnect()
    _FFStart("http://de.wikipedia.org/wiki/Hyperlink")
    _FFLinkClick("Querverweis","text") ;<---- Funktioniert
    _FFLinkClick("Text","text") ;<----- Funktioniert nicht....

    [/autoit]

    Das steht in der Console:

    Spoiler anzeigen

    Mach ich irgendwas Falsch? Hab mich länger nicht mehr mit der FF.au3 auseinandergesetzt.

    Hab FF 3.5 (extra die 3.6er deinstalliert (bei der es auch nich funktioniert hat, weil ich iwo gelesen hab, dass die nich kompatibel is) und Windows 7 x86.

    Regards

    5 Mal editiert, zuletzt von mietzekatze (1. Februar 2011 um 11:06)

  • hey!

    Bei mir funktioniert dein Code soweit.
    Allerdings sind 2 Dinge in deinem überflüssig.

    Zum einen brauchst du

    [autoit]

    #inlcude <FFEx.au3>

    [/autoit]

    sowie

    [autoit]

    _FFConnect()

    [/autoit]

    nicht.
    FFEx sind nur erweiterte Funktionen die unabhängig von der FF.au3 arbeiten.
    Und die Funktion _FFStart() beinhaltet den Connect.

    Und hier noch ein (bei mir) funktionierender Code.

    [autoit]

    #include<FF.au3>
    ;_FFConnect()
    _FFStart("http://de.wikipedia.org/wiki/Hyperlink")
    _FFLinkClick("Querverweis","text") ;<---- Funktioniert
    Sleep(250)
    _FFLinkClick("Text","text") ;<----- Funktioniert

    [/autoit]

    Falls du das Connect dennoch drin haben möchtest, dann z.B. so:

    [autoit]

    #include<FF.au3>
    If _FFConnect(Default, Default, 3000) Then
    _FFOpenURL("http://de.wikipedia.org/wiki/Hyperlink")
    Else
    _FFStart("http://de.wikipedia.org/wiki/Hyperlink")
    EndIf
    _FFLinkClick("Querverweis","text") ;<---- Funktioniert
    Sleep(250)
    _FFLinkClick("Text","text") ;<----- Funktioniert

    [/autoit]
  • Das das überflüßssig ist weiß ich, ich wollte bloß alles abdecken.

    Welche Version von FF hastn du und welchen OS?

  • Klasse. Bis auf den Fakt das is 32-bit habe ich genau dasselbe...

    Sonst jemand ne Idee warum nicht funktioniert?

  • versuch das mal

    [autoit]

    #include <FF.au3>

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

    _FFStart("http://de.wikipedia.org/wiki/Hyperlink")
    If _FFConnect() Then
    _FFLinkClick("Querverweis","text") ;<---- Funktioniert
    _FFConnect()
    _FFLinkClick("Text","Text") ;<---- Funktioniert
    Else ; Sonst... (Fehlermeldung!)
    MsgBox(64, "Ein Fehler ist aufgetreten", "Eine Verbindung mit dem Mozilla FireFox war nicht möglich!")
    EndIf

    [/autoit]

    mfg: weedhead

  • Wenn schon _FFConnect, dann auch vorher Disconnecten.

    Oder gleich so, dann muss der Firefox nicht - wegen dem _FFConnect - im Vordergrund sein.

    [autoit]

    #include<FF.au3>

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

    _FFStart("http://de.wikipedia.org/wiki/Hyperlink")

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

    _FFLinkClick("Querverweis","text") ;<---- Funktioniert
    _FFFixConnection()
    _FFLinkClick("Text","text") ;<----- Funktioniert

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

    _FFQuit()

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

    Func _FFFixConnection()
    _FFCmd("FFau3.WCD=window.content.top.document;")
    EndFunc

    [/autoit]
  • Komischerweise hats jetz auch ohne das ganze andere funktioniert.
    Jetz noch eine Frage, ich will ein automatisches Script erstellen, welches mich bei web.de einloggt.
    Das Problem is, dass das Script, sollte ich mal vergessen mich auszuloggen auf das "Weiter zum Mailfach"-Bild klicken, aber weder hat _FFimageClick(), _FFLinkClick(), _FFClick(_FFXPath()) noch sonst was funktioniert. Jetz versuch ich über _FFReadHTML() den Quelltext auszulesen und dann per_StingBetween den Link rauszusuchen.

    hier mal der Quelltext:

    Spoiler anzeigen
    [autoit]


    $Start='<a href="/online/'
    $End='" accesskey="f"><img src="//img.web.de/v/mail/dr_logout/button.jpg" width="166" height="56" border="0" alt="Weiter zu FreeMail" /></a>'

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

    _FFOpenURL("http://www.web.de")
    _FFClick(_FFXPath("/html[@id='buster']/body[@id='top']/div[@id='container']/div[@id='wrapper']/div[@id='content']/div[@id='features']/div[2]/div[@id='loginbox']/div/div[1]/ol/li[@id='contentNavFreemail']/span/a","",9))
    _FFSetValue("Benutzer","username","name")
    _FFSetValue("Passwort","password","name")
    _FFClick(_FFXPath("/html[@id='buster']/body[@id='top']/div[@id='container']/div[@id='wrapper']/div[@id='content']/div[@id='features']/div[2]/div[@id='loginbox']/div/div[2]/ol/li[@id='contentBoxFreemail']/div/div/div/div/form[@id='formFreemailLogin']/fieldset/span/input","",9))
    MsgBox(1,"","")
    _FFFixConnection()
    $source=_FFReadHTML()
    MsgBox(1,"",$source)
    $refLink=_StringBetween($source,$Start,$End)
    _ArrayDisplay($refLink)

    [/autoit]

    und hier der Quelltext von dem Link:

    Spoiler anzeigen
    Code
    <a href="/online/frame.htm?si=EWIGLANGEBELIEBIGEID&v=1" accesskey="f"><img src="//img.web.de/v/mail/dr_logout/button.jpg" width="166" height="56" border="0" alt="Weiter zu FreeMail" /></a>


    Jemand nochmal ne Idee? :D

  • Hallo,

    das reicht vollkommen:

    Spoiler anzeigen
    [autoit]

    #include <ff.au3>
    #include <_FF_AutoLogin.au3>

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

    _FFConnect()

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

    If _FF_AutoLogin("irgendjemand@web.de", "0815", "web.de") Then
    _FFLoadWait()
    If _FFXPath("/html",'Logout vergessen',11) Then _FFClick( _FFXPath("//table//tr[2]/td[3]/a","",9) )
    EndIf

    [/autoit]

    Grüße
    Stilgar

  • Nope. Klappt irgendwie nich :\

    Hier mal Consolen-Meldung:

    Spoiler anzeigen
    Code
    __FFSendJavaScripts: Sending functions to FireFox .......... done
    __FFSend: FFau3.xpath=null;try{FFau3.xpath=FFau3.WCD.evaluate("contains(/html,'Logout vergessen')",FFau3.WCD,null,XPathResult.BOOLEAN_TYPE,null).booleanValue;}catch(e){'_FFXPath_Error: '+e;};
    __FFRecv: 0
    __FFSend: FFau3.xpath=null;try{FFau3.xpath=FFau3.WCD.evaluate("/html/body/center/table/tbody/tr[2]/td[3]/a/img",FFau3.WCD,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;}catch(e){'_FFXPath_Error: '+e;};
    __FFRecv: 
    __FFSend: try{FFau3.simulateEvent(FFau3.xpath,'MouseEvents','click');}catch(e){'_FFCmd_Err';};
    __FFRecv: -3
    _FFClick ==> No match: $sElement: FFau3.xpath

    Habs einmal mit deinem XPath ausprobiert und dann nochmal mit XPather mir den Pfad geben lassen. Klappt irgendwie beides nicht.

  • Ok, das lag doch wieder daran das ich nen _FFConnect ausführen musste.

    Also, jetz läufts wieder.

    Vielen Dank.