FF - Page Analyzer (V0.999.6b) - erstellt Befehle für HTML-Forms, Links und automatisch Login-Scripte

  • Momentan keine aktuelle Version verfügbar!
    Eine neue Version ist in Arbeit ...

    Da es auf Webseiten immer wieder das gleiche Problem, beim Ausfüllen von Forms und dem Klicken auf Links gibt, kommt hier mal ein Programm für die FF.au3, das dieses Problem beseitigt (hoffentlich):

    [Blockierte Grafik: http://www.thorsten-willert.de/Themen/FFau3/P…zer/Preview.png]

    Das Programm ließt alle Forms und Links auf der angegebenen Seite ein und stellt sie als Baumstruktur (ähnlich wie der DOM-Inspector) dar.

    Die zu analysierende Seite braucht nicht eingegeben zu werden, das Programm übernimmt die aktuelle Seite in FireFox.

    Nun selektiert man das gewünschte Element (elements[n] oder links[n]) stellt ein was man machen möchte (nicht jeder Befehl geht mit jedem Element-Typ) wählt "Create Command" im Context-Menü und schon hat man das passende Kommando unten in dem Feld und im Clipboard stehen :)

    * Es lassen sich auch (ganz) kleine Programme zusammenklicken. Zusätzlich zu den generierten Befehlen aus der Objekt-Auswahl gibt es:
    _FFStart
    _FFConnect
    _FFFrameEnter
    _FFFrameLeave
    _FFOpenURL
    _FFQuit
    _FFDisConnect
    Die Variable für den Socket wird automatisch eingetragen und für die URL wir die aktuelle Seite verwendet.

    * Zusätzlich lassen sich automatisch Login-Scripte erzeugen (Menu/Tools/Create Login ...). Dabei kann aus dreierlei Varianten auswählen die folgendes erzeugen:

    Spoiler anzeigen
    [autoit]

    ; Login Commands
    _FFSetValueByName("UserName", $sPassName)
    _FFSetValueByName("PassWord", $sPassWord)
    _FFFormSubmit("LOGIN", "name")

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

    ; Login Script
    $sPassName = ""
    $sPassWord = ""
    _FFConnect()
    If _FFIsConnected() Then
    _FFOpenURL("http://www.autoitscript.com/forum/index.php?act=Login&CODE=00")
    _FFSetValueByName("UserName",$sPassName)
    _FFSetValueByName("PassWord",$sPassWord)
    _FFFormSubmit("LOGIN","name")
    EndIf

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

    ; Login Function (basierend auf Vorlage in INI)
    Func _FFLogin($sUserName, $sPassWord, $sSuccses)
    If _FFIsConnected() Then
    _FFOpenURL("http://www.autoitscript.com/forum/index.php")
    If @error Then Return 0
    If _FFSetGet(".forms[1].elements[0].value='" & $sUserName & "'") = 0 Then Return 0
    If _FFSetGet(".forms[1].elements[1].value='" & $sPassWord & "'") = 0 Then Return 0
    _FFFormSubmit(1)
    If @error Then Return 0
    _FFLoadWait()
    If _FFAction("search",$sSuccses) Then Return 1
    EndIf
    Return 0
    EndFunc

    [/autoit]

    Die Funktion läßt sich dann z.B. wie folgt weiterverwenden:

    Spoiler anzeigen
    [autoit]

    #region Includes
    #include <FF.au3>
    #endregion Includes

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

    _FFConnect()
    If _FFLogin("Stilgar", "*******", "Du wurdest erfolgreich angemeldet") Then
    MsgBox(64, "", "Login erfolgreich!")
    Else
    MsgBox(48, "", "Login fehlgeschlagen!")
    EndIf

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

    Func _FFLogin($sUserName, $sPassWord, $sSuccses)
    If _FFIsConnected() Then
    _FFOpenURL("http://autoit.de/index.php?form=UserLogin")
    If @error Then Return 0
    If _FFSetGet(".forms[0].elements[0].value='" & $sUserName & "'") = 0 Then Return 0
    If _FFSetGet( ".forms[0].elements[1].value='" & $sPassWord & "'") = 0 Then Return 0
    _FFFormSubmit( 0)
    If @error Then Return 0
    _FFLoadWait()
    If _FFAction("search", $sSuccses) Then Return 1
    EndIf
    Return 0
    EndFunc ;==>_FFLogin

    [/autoit]

    Alle Einstellungen werden beim Verlassen gespeichert ("FF-Page_Analyzer.ini" im Programmverzeichnis).
    In der INI selbst läßt sich auch noch mit dem Parameter "URLTimer" einstellen, in welchen Abständen das Programm die aktuelle URL aus FireFox ausließt (in ms / Min = 1000).

    Dort ist das Programm:
    http://www.thorsten-willert.de/php/dl.php?url…ge_Analyzer.au3

    Benötigt wird die neueste Version der FF.au3:
    http://www.thorsten-willert.de/php/dl.php?url=FFau3/FF.au3/FF.au3

    Was noch in Arbeit ist:
    * Listen unterstützen

    Was haltet ihr davon, was kann ich noch ändern?

    Viele Grüße
    Stilgar

    25 Mal editiert, zuletzt von Stilgar (9. November 2009 um 19:01)

  • Sieht gut aus :)
    Würde aber, wenn möglich den Name zum Zugriff verwenden. Oder das als Option reinmachen.

  • Nochmal etwas überarbeitet:
    * Zur besseren Übersicht:
    - sind die Forms nun fettgedruckt
    - werden leere IDs nicht mehr angezeigt.
    - die Optionen von Listen haben nun einen eigenen Unterpunkt
    * Die Variable für $Socket kann eingegeben werden
    * Die URL wird jetzt bei erneutem Laden aktualisiert
    * Der überflüssige zweite Verbindungsaufbau findet nicht mehr statt
    * Bei Radio-Buttons und CheckBoxen wird jetzt CHECKED angezeigt und bei Listen der SELECTED INDEX

    Die Auswahl für $sValue funktioniert noch nicht und der Rest kommt noch.

    Download siehe oben.

    Viel Spaß beim Ausprobieren!
    Grüße Stilgar

  • Nochmals überarbeitet:
    * CheckBoxen und RadioButtons können nun auch ausgewählt werden
    * "Use Index" - der Befehl wird dann immer per _FFSetGet und über die Indizes erstellt - ist leider manchmal nötig bei seltsamen Namen, oder unzulässigen Zeichen in den Bezeichner (siehe https://autoit.de/www.autoit.de :whistling::D )
    * etwas tolleranter bei Fehlern
    * Quelle besser dokumentiert - ist ja eh noch nicht fertig ...
    * Es können nicht alle Aktionen auf jedes Element angewandt werden:
    z.B. macht ein unchecked bei einem Input keinen Sinn während Click, Submit und Reset immer funktionieren.

    Viel Spaß damit,
    Stilgar

  • Hatte heute doch noch mehr Zeit ...

    Neues:
    * Die aktuelle URL in FireFox wird nun alles 5 Sekunden abgerufen, in das URL-Feld und die Titelleiste eingetragen. Damit kann man das Fenster einfach beim Surfen verkleinern und bei Bedarf auf "Get Forms" klicken ohne irgendwas einstellen zu müßen :)
    * Durch anwählen des Menüpunktes "Options/Append Forms", kann man die Forms unterschiedlicher Seiten gleichzeitig darstellen. (siehe Bild)
    * Zwei kleine Fortschrittanzeigen eingebaut (oben Forms, unten Elements)
    * Die Auswahl der Variablen funktioniert nun auch:
    -$sValue = es wird zum setzen und empfangen von Werten immer $sValue eingesetzt
    - Variable = hier kann man selbst eine Variable angeben
    - Fixed = Bei "Set Value" wird der angegebene Wert genommen

    Download:
    http://thorsten-willert.de/Themen/AutoIt-…F_Form-Tool.au3

    Viel Spaß damit und ein schönes Wochenende!
    Stilgar

  • Neue Version:
    Damit kann man sich nun eine Liste von Befehlen zusammenklicken und diese per Clipboard in einen Editor seiner Wahl kopieren.
    Buttons zum Ändern der Reihenfolge kommen noch dazu.
    Evtl. noch die Möglichkeit einzelne Seiten neu zu laden und die URLs zu speichern.

    Was haltet ihr davon?

    Grüße
    Stilgar

    [EDIT] Alte Links entfernt

    2 Mal editiert, zuletzt von Stilgar (16. Juni 2008 um 11:07)

  • Neues:
    * das Analysieren der Links ist nun ca. 6 mal schneller :D
    * Bei Bild-Links wird nun:
    - statt dem meist nicht vorhandenem Text, der alt-Text des Bildes angezeigt
    - zusätzlich die URL des Bildes angezeigt
    * ein paar Optimierungen unter der Oberfläche

    Download:
    http://thorsten-willert.de/Themen/AutoIt-…Analyzer_V4.au3

    !!! Für diese Version ist unbedingt die neueste FF.au3 notwendig!!!
    http://thorsten-willert.de/Themen/AutoIt-FF.au3/FF.au3/FF.au3

    Viel Spaß damit!
    Stilgar

  • peethebee :
    Dankeschön!

    Ich habe nochmal eine neue Version hochgeladen, die einige kleinere Ungereimtheiten auf manchen Seiten korrigiert. Im gleichen Zug sind auch einige kleinere Verbesserungen in die FF.au3 eingeflossen.
    Und soeben getestet: Es funktioniert auch noch mit FireFox V3.

    Downloads:
    http://thorsten-willert.de/Themen/AutoIt-…lyzer/index.php

    Hat das Programm schon jemand verwendet? Was wäre noch zu verbessern oder ändern?

    Grüße
    Stilgar

  • Update:
    Alle Einstellungen werden beim Verlassen gespeichert ("FF-Page_Analyzer.ini" im Programmverzeichnis).

    In der INI selbst läßt sich auch noch mit dem Parameter "URLTimer" einstellen, in welchen Abständen das Programm die aktuelle URL aus FireFox ausließt (in ms / Min = 1000).

    Download - siehe ganz oben.

    Viel Spaß damit!
    Stilgar

  • Korrektur:
    * Image-Links mit javascript als HREF werden jetzt per _FFClick und den Index angesprochen
    * Click Element auf Links ist nun nicht mehr möglich
    (sorry, aber die Variationsmöglichkeiten sind einfach zu vielfältig, wie sich die Befehle zusammensetzen lassen.)

    Wahrscheinlich werde den _FFClickLink auf Image-Links noch durch ein _FFClickImage ersetzen, ist zwar im Endeffekt das gleiche, aber offensichtlicher was gemacht wird.

    Fehlt noch was?

    Download, wie immer oben.

    Viel Spaß damit
    Stilgar

  • Update:
    In der neuesten Version lassen sich nun (ganz) kleine Programme zusammenklicken. Zusätzlich zu den generierten Befehlen aus der Objekt-Auswahl gibt es:
    _FFStart
    _FFConnect
    _FFOpenURL
    _FFQuit
    _FFDisConnect
    Die Variable für den Socket wird automatisch eingetragen und für die URL wir die aktuelle Seite verwendet.

    Download siehe oben.

    Viel Spaß damit!
    Stilgar

  • Kann es sein das es mit Firefox 3 nicht kompatibel ist?

    Fehlermeldung

    >"C:\Programme\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\Dokumente und Einstellungen\***\Desktop\Neu AutoIt v3 Script.au3" /autoit3dir "C:\Programme\AutoIt3" /UserParams
    +>19:22:02 Starting AutoIt3Wrapper v.1.10.1.7 Environment(Language:0407 Keyboard:00000407 OS:WIN_XP/Service Pack 3 CPU:X86)
    >Running AU3Check (1.54.13.0) from:C:\Programme\AutoIt3
    +>19:22:02 AU3Check ended.rc:0
    >Running:(3.2.12.1):C:\Programme\AutoIt3\autoit3.exe "C:\Dokumente und Einstellungen\***\Desktop\Neu AutoIt v3 Script.au3"
    _FFConnect: IP: 127.0.0.1
    _FFConnect: Port: 4242
    _FFConnect: Connection Delay: 11ms
    _FFConnect ==> Timeout: Can not connect to FireFox/MozRepl on: 127.0.0.1:4242
    _FFSetGet ==> Socket Error
    _FFSetGet ==> Socket Error
    _FFSetGet ==> Socket Error
    _FFSetGet ==> Socket Error
    _FFSetGet ==> Socket Error
    _FFSetGet ==> Socket Error
    _FFSetGet ==> Socket Error
    _FFSetGet ==> Socket Error
    _FFSetGet ==> Socket Error
    _FFSetGet ==> Socket Error
    _FFSetGet ==> Socket Error
    _FFSetGet ==> Socket Error
    _FFSetGet ==> Socket Error
    _FFSetGet ==> Socket Error
    _FFSetGet ==> Socket Error
    _FFSetGet ==> Socket Error
    _FFSetGet ==> Socket Error
    _FFSetGet ==> Socket Error
    +>19:24:30 AutoIT3.exe ended.rc:0
    >Exit code: 0 Time: 149.694


    Bevor jemand fragt:
    Ja MozRepl ist installiert.
    Ja ich habe Firefox neu gestartet.

  • Doch, es ist kompatibel. Bei mir geht es ( Nur MozRepl und Free download Manager Plugin sind im Repl Profil drin )
    Hast du repl auch im Menu Extras -> MozLab oder so angeschaltet?
    Der Form analyzer startet Firefox und repl nicht automatisch :)

  • Das Auslesen in FF3 funktioniert - ABER:

    es lassen sich momentan keine Elemente über den Namen ansprechen sondern nur über den Index. Man muß für FF3 also unbedingt "Use Index" einschalten sonst funktionieren die erzeugten Befehle nicht.
    Ein passendes Update für die FF.au3 ist in Arbeit ...

    Grüße
    Stilgar

  • Hiho...

    Hmm... wenn ich den PageAnalyzer starte bekomme ich folgenden Fehler:

    [Blockierte Grafik: http://img384.imageshack.us/img384/3964/pageanalyzererroriw9.th.jpg]

    MozLab ist installiert, ff.au3 und pageanalyzer sind frisch runtergeladen und installiert...
    SyntaxCheckl über das Skript bringt mir

    Zitat

    C:\Dokumente und Einstellungen\bergmann4711\Desktop\FF-Page_Analyzer.au3(144,37) : WARNING: $Menu_Options_GetLinksTARGET: possibly used before declaration.


    Wenn ich die auskommentierte Zeile 69 wieder "einschalte", neu kompiliere und eine URL eingebe und auf Analyze klicke, bekomme ich den Fehler: _FFSetGet ==>Socket Error

    Bin da etwas ratlos...
    Und für jeden Tip empfänglich :)

    Bergmann4711

    Einmal editiert, zuletzt von bergmann4711 (26. Juni 2008 um 21:17)