FF-Management - FireFox.au3

  • [EDIT]


    Eine neue Version ist fertig.
    - Die Fehlerauswertung ist nun fast überall drin.
    - Alle Funktionen sind nun weniger störanfällig.
    - Start von Firefox wir nun mit mehreren Timeouts überwacht
    - Pfad von FireFox wird nun aus Registry gelesen


    - Ein paar Funktionsschnittstellen geändert ...
    * _FFOpenURL kann nun eine Seite im angegebenen Tab öffnen
    * _FFReadHTML kann nun aus einem bestimmten Tab lesen
    * _FFConnect und _FFStart haben nun 127.0.0.1:4242 als default Werte


    - Neue Aktionen für _FFAction:
    * TabAdd
    * TabAddSelect
    * TabSelect
    * TabNext
    * TabPrev
    * TabFirst
    * TabLast


    Darum hier mal ein "neues" Beispiel (Spielreien mit Tabs):



    Die neue FF.au3 gibts hier:
    http://thorsten-willert.de/Software/AutoIt/


    Und als Nächstes gehts an Eingemachte - Abfrage / Eingabe in Forms ...

  • Hi Thorsten,


    Habe es gerade mal testen wollen. Also MozRepl installiert und los.
    Funktionierte aber leider nicht. Habe dann mit Putty eine Telnet-Session gemacht und geschaut, was los ist. Er bleibt nicht mit dem Prompt "repl>" stehen, sondern mit "repl> ....>". Man kommt wie dort beschrieben mit ";" in den normalen Modus, aber die UDF macht das ja nicht. Also habe ich versucht, dieses ";" als Action umzusetzen, was aber nicht geklappt hat. Hast du eine Idee, woran das liegen könnte?


    Dann noch etwas, beim Starten von FF wäre es geschickt, wenn man das Profil auswählen könnte - sonst bleibt man nämlich u.U. in der Menüauswahl vor dem Start hängen (zumindest vermute ich das mal ;)) :).


    peethebee

  • Hallo,
    das ist mir auch schon aufgefallen, das eine normale Telnet Verbindung mit repl> ....> beginnt, nur hatte das bisher keinen Einfluß auf die Kommunikation mit der UDF.
    Wie hast du denn die Verbindung zu MozRepl aufgebaut? Funktioniert das Beispielprogramm? Gabs irgendwelche Fehlermeldungen in der Console?


    Das mit Profilen muß ich mir mal angucken, habe ich bisher noch nie verwendet und sind mir noch nie wirklich aufgefallen :)


    Ich habe mal eine neuere Version der UDF hochgeladen, die traced die Kommunikation in der Console mit.
    http://thorsten-willert.de/Software/AutoIt/


    Thorsten


    [EDIT]
    Wichtige Änderung:
    _FFStart unterstützt nun Profile



    Umfrage:
    Bei wem arbeiten denn die Funktionen korrekt?
    Funktioniert _FFStart überall?
    Vorschläge, Bitten, Klagen?

  • werd es jetzt mal testen, aber vorab die frage: wird es irgendwann möglich sein, das ganze ohne plugin zu betreiben?


    Edit: btw, ich weiss ich bin die ausnahme, aber es ist einfach sooooviel praktischer, gäbe es die möglichkeit, dass man auch firefox portable damit bedienen könnte?


    müsste es noch testen, jedoch funzt das als standardbrowser leider nicht, deswegen behaupte ich mal, geht das so erstmal auch nicht

  • Schade schlechter Test ;)
    Nein ohne Plugin wird es NIE funktionieren. Die Oberfläche von Firefox besteht nur aus XUL und JavaScript Dateien (außer der Exe natürlich, die muß das ganze interpretieren) und somit besteht keine Möglichkeit mit dem OS direkt darauf zuzugreifen.


    Dafür besteht hier die Möglichkeit den FireFox auf einem anderen Rechner oder OS fernzusteuern :D


    Viele Grüße
    Stilgar

  • Hey super, die FF.au3 ist echt ein klasse Projekt ich kann den IE eh nicht leiden.


    Freue mich schon, wenn Funktionen wie _FFGetElementByID umgesetzt werden. Kann ich nämlich super für mein Peterzahlt Script gebrauchen.


    Der Hintergrund ist, das man nicht weiter surfen kann, wenn es über den IE läuft, da das Fenster immer Top ist und man nichts anderes anklicken kann.
    Den Firefox interessiert das nicht und man könnte während man über Peterzahlt telefoniert noch Mails lesen, oder so.


    Zum _FFReadText (liefert den Text einer Seite ohne Tags)
    Habe das noch nicht ausprobiert werden die Tags nur entfernt, oder
    mit StringReplace ausgetauscht wie z.B
    [Blockierte Grafik: http://img212.imageshack.us/img212/1896/placeql5.jpg]


    so long
    Frank

    Einmal editiert, zuletzt von thunder-man ()

  • Hallo,


    Die Funktion _FFReadText entfernt selbst gar nichts (außer mit Option Compress). FF liefert hier einfach den Text der Seite zurück den der Benutzer normalerweise auch sieht, ohne Formatierung eben. JavaScript und Teile von Forms werden dabei auch ausgelesen.


    Funktionen zum Auslesen habe ich gerade in Arbeit.


    Grüße
    Thorsten

  • Hier die erste Schreib/Lese Funktion:


    _FFSetGet($Socket,$sElement,$iTabIndex=-1)


    Ermöglicht Zugriff auf alle Elemente und Funktionen von FF z.B.:


    (Syntax wie in JavaScript)


    AutoIt.de-Homepage Benutzername/Passwort Eingabe:


    _FFSetGet($Socket,'content.document.loginform.l_username.value="mustermann"')
    _FFSetGet($Socket,'content.document.loginform.l_password.value="passwort"')


    und wieder auslesen:


    msgbox(0,"",_FFSetGet($Socket,'content.document.loginform.l_username.value') )
    msgbox(0,"",_FFSetGet($Socket,'content.document.loginform.l_password.value') )


    Weitere Funktionen folgen ...


    http://thorsten-willert.de/Software/AutoIt/


    Viele Grüße
    Stilgar


    [EDIT]
    Das Absenden erfolgt natürlich mit:


    _FFSetGet($Socket,'content.document.loginform.submit()')


    Siehe auch hier:
    http://de.selfhtml.org/javascript/objekte/index.htm

  • Hallo zusammen,


    das Projekt finde ich SUPER und versuche gerade ein Skript für die automatische Anmeldung bei GMX zu realisieren. Der Skript an sich funktioniert, wenn ich aber den compiliere wird die Seite nicht geladen.
    Kann mir jemand helfen? Was mache ich falsch?

  • Hallo,


    kannst Du dir mal bitte diese Version:
    http://thorsten-willert.de/Software/AutoIt/unstable/FF.au3


    herunterladen, da ist das Debugging aktiviert und mir mal zeigen was in der Console für Meldungen ausgegeben werden.


    Wie ist der Status von MozRepl nach dem Starten von FF? Wenn im Menü "Stop" steht sollte es laufen.



    Du kannst auch die komplette Anmeldung mit FF machen:




    _FFLoadWait ist nach _FFOpenURL nicht notwendig, da dieser Befehl das eh macht, läßt sich aber deaktivieren wenn:


    _FFOpenURL(ByRef $Socket, $sURL, $iTabIndex = -1, $bWait = True)


    der Parameter $bWait auf False steht.
    iTabIndex sollte auf -1 stehen damit der aktuelle Tab genommen wird.



    Viele Grüße
    Stilgar



    P.S:
    _FFSetGet sieht noch etwas komisch aus und wird in der nächsten Version durch Befehle "ersetzt" die einfacher zu handhaben sind.


    D.h mit der Version die du oben herunterladen kannst, geht das auch:

  • Hallo,


    danke für den Tip.
    Der nichtkompilierter Skript funktioniert auch wunderbar, wenn ich aber den kompiliere wird das FF-Fenster geöffnet aber keine Seite geladen.
    Wie kann ich die kompilierte EXE debuggen?

  • Hi,
    ich bekomme leider keinen Zugriff auf Port 4242, weder
    mit Telnet, Putty, oder dem TCP Script von dieser Seite.


    Muss ich noch irgendwo was ändern?


    Klasse, das nun die Funktionen ... das sind:
    _FFGetValueById, _FFGetValueByName, _FFSetValueById, _FFSetValueByName


    Aber brauche in nicht z.B erst das Pedant zu _IEFormGetObjByName und _IEFormElementGetObjByName ?

    Einmal editiert, zuletzt von thunder-man ()

  • @xoma:


    Das muß ich nochmal ausprobieren.



    @thunder-man:


    Schwer zu sagen auf die Ferne. Läuft MorzRepl? Ist dort der Port richtig eingestellt? Oder wird er durch eine Firewall blockiert?


    Nein GetObjByName oder ähnliches ist nicht notwendig.
    IDs sind eh immer einzigartig (sollten sie zumindest theoretisch sein) und bei Namen läßt sich der Index mit angeben, falls diese öfters auftauchen sollten.


    Notfalls laßen sich alle Objekte direkt ansprechen, also z.B.:
    _FFSetGet($Socket, 'content.document.loginform.l_username.value="Stilgar"')


    Grüße
    Stilgar

  • Stilgar
    THX habe gerade auch von der englischen Seite gelesen, das man MorzRepl
    manuel starten muss.
    Kann ne Firewall den blocken? Ist doch kein Zugriff von draußen notwendig.


    Muss mich mich erst noch dran gewöhnen, das man Objekte nun nicht mehr braucht. Bin es halt vom IE gewöhnt...


    Woher habt Ihr eigentlich die Info über MozRepl ?
    Die Hilfe auf der englischen Seite ist ja nicht so ausführlich.


    ich suche nämlich nach imgClick.


    so long
    Frank

    Einmal editiert, zuletzt von thunder-man ()

  • Bekommen nun nur noch Error´s:



    Einmal editiert, zuletzt von thunder-man ()

  • Hier mal ein Update, die Verbindung konnte nicht immer aufgebaut werden (das sollte nun klappen) und wichtige Fehler werden bei kompilierten Programmen per MsgBox ausgegeben:
    http://www.thorsten-willert.de/Software/AutoIt/


    Und hier noch eine Kurzanleitung:
    http://www.thorsten-willert.de/Software/AutoIt/readme.txt



    @thunder-man:
    Könnte sicher blockieren, kommt immer drauf an was man einstellt.


    Informationen über MozRepl braucht es nicht, das Programm ist ja nur eine Schnittstelle zu FireFox. Alle Elemente werden wie in JavaScript gelesen oder verändert, da die GUI von FF ja nur aus XUL und JavaScript besteht.


    siehe hier:
    http://de.selfhtml.org/javascript/objekte/index.htm
    und hier:
    http://developer.mozilla.org/en/docs/Gecko_DOM_Reference



    Interessanter Fehler. Wenn ich nicht ganz oben #include-once stehen hätte würde ich sagen die FF.au3 ist zweimal includiert. ?(


    Viele Grüße
    Thorsten


    [EDIT]
    Diese "click" Sachen muß ich noch suchen.

  • Stilgar


    Wohl war, hattest mit dem includen schon fast recht, lol
    hatte von einen alten Script auch noch die IE.au3 includet, das mochte
    die FF.au3 dann nicht, recht so ich kann den IE auch nicht leiden :D


    Danke für die anderen Infos, werde mich da mal einlesen


    Grüße
    Frank