FF-Management - FireFox.au3

  • Habe gerade gesehen, das es _FFStart und FFConnect gibt.

    Wäre es nicht besser, das immer erst connectet wird außer ich sage explizit
    das eine neue Browser Instanz geöffnet werden soll.

    Allerdings kann man das ja auch selber mit IF ProcessExists abfragen.


    ===============
    Dann möchte ich mich hier noch einmal bei allen beteiligten für die FF.au3 bedanken. Sie ist erst ein paar Tage alt und schon aus den Kinderschuhen gewachsen.
    Außerdem tragen wir ja mit IE Scripte zu deren größeren Marktanteil bei, nun aber hat der Firefox bald bessere changen über die ca. 30% in Europa zu kommen. lol

    Und ich schließe mich der Meinung von "Waluev" an, das es schön wäre, wenn die FF.au3 fester Bestandteil von AutoIT wird.

    so long
    Frank

    Einmal editiert, zuletzt von thunder-man (23. August 2007 um 14:48)

  • _FFConnect ist da um zu einem laufenden Browser eine Verbindung aufzubauen.

    _FFStart =
    - Standort von FireFox.exe aus Registry lesen.
    - FireFox mit angebenem Profil und eingeschaltetem MozRepl starten
    - Prüfen ob der Prozeß gestartet ist, mit 60 sec. TimeOut
    - _FFConnect mit 60 sec. TimeOut
    - evtl. _FFOpenURL


    Kann man verwenden wie man möchte.

  • Stilgar

    Ja, so habe ich es in der Hilfe gelesen, ich wollte damit aussagen, das wenn ich
    Software weitergebe, das ich dann nicht weiß, ob eine Browser läuft, zu dem ich connecten kann, anderer seits wäre es auch quatsch einen neuen Browser zu öffnen, wenn schon einer offen ist.

    _FFConnect sagt ja als Error, wenn er nicht connecten kann, andererseits könnte er ja dann selber _FFStart ausführen

    Kann man ja aber trotzdem verwenden wie man möchte...

  • Ha super klasse, danke für die Umsetzung. Werde ich gleich mal testen,
    allerdings muss ich erst ein mal XP vom Image neu aufspielen, ist mir alles irgendwie zu langsam geworden und Firefox hat immer ein paar Sekunden freezer.

    Gibt´s hier ne Wunschliste? ;)

    2 Mal editiert, zuletzt von thunder-man (23. August 2007 um 19:26)

  • Hey,

    Ich habe das für mich mit _FFStart so gelöst ...

    [autoit]

    Dim $NewProcess = False

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

    If Not ProcessExists("firefox.exe") Then $NewProcess = True
    Sleep(100)
    $Socket = _FFStart ("about:blank", "Test", $NewProcess)

    [/autoit]


    Gibt eine Möglichkeit, das zuletzt benutzte Profil auszulesen?
    Das könnte man dann in einer Variable schreiben. Wenn man die Tools
    weitergibt, dann kennt man ja den Profilname nicht und bei default geht ja der Manager auf, ich möchte aber default nutzen, ohne das der Manager kommt...

  • Ahja, oder so:

    [autoit]

    _FFStart("http://www.autoit.de/portal.php","",Not ProcessExists("FireFox.exe") )

    [/autoit]

    Warum geht bei default der Manger auf? Das Standardprofil ist doch default, also sollte er damit einfach starten.

    Grüße
    Stilgar

    [EDIT]
    Nach irgendeinem (Img)click brauchst du nicht weitersuchen, das ist wieder so eine selbstgefrickelte JavaScript Erweiterung von Microsoft.

    Diese ImageClick und LinkClick Funktionen werde ich dann als nächstes machen.
    Ich werde für den ImageClick einfach das InnerHtml Objekt der Links durchsuchen und dann den Link aufrufen, ist am einfachsten und funktionert besser als bei der IE.au3 die einfach planlos auf ein Bild klickt auch wenn es keinen Link hat :D

    2 Mal editiert, zuletzt von Stilgar (23. August 2007 um 23:24)

  • Oh THX , das mit dem (Img)click hört sich ersteinmal nach viel Arbeit an ...

    Aber im Moment habe ich andere Probleme mal connectet FF, mal nicht. "TCP Error"
    Dann öffnet sich bei default komischerweise immer der Profilmanager.

    Und mit _FFStart() habe ich echte Probleme, nur wenn ich Firefox offen habe klapt´s, ansonsten sind alle Icon von der Statusleiste weg und ich bekomme diese Meldungen ...

    Spoiler anzeigen
    [autoit]

    If you get stuck at the "...>" prompt, enter a colon (;) at the beginning of the line to force evaluation.

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


    _FFSend: content.document.location.href="http://www.autoit.de"
    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl ==> MozRepl Exception: @data:application/x-javascript,content.document.location.href%3D%22http%3A%2F%2Fwww.autoit.de%22%0D%0A:1

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

    !!! TypeError: content has no properties

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

    repl>
    __FFWaitForRepl: @data:application/x-javascript,content.document.location.href%3D%22http%3A%2F%2Fwww.autoit.de%22%0D%0A:1

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

    !!! TypeError: content has no properties

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

    repl>
    _FFRecv: @data:application/x-javascript,content.document.location.href%3D%22http%3A%2F%2Fwww.autoit.de%22%0D%0A:1

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

    !!! TypeError: content has no properties

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

    repl>
    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl ==> Timeout: Waiting for repl>
    __FFWaitForRepl:
    _FFRecv:
    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFSend: document.getElementById('statusbar-icon').value
    __FFWaitForRepl: 0

    _FFRecv: 0

    _FFLoadWait ==> Timeout: Can not check site status.
    +>01:00:38 AutoIT3.exe ended.rc:0
    +>01:00:40 AutoIt3Wrapper Finished
    >Exit code: 0 Time: 66.535

    [/autoit]
  • lol, ja das sieht schon irgendwie besser aus, allerdings und das ist komisch,
    beim jeden 2. Start sehe ich den Prozess im Start Manage und dann schließt sich die Instanz, ohne das die Oberfläche kam.

    Ich teste aber gerade noch mit nem neuen sauberen Profil ohne Erweiterungen, vielleicht liegt´s ja auch daran. (Habe jede Menge davon)

    NoScript hatte ich mal an und aus, war aber egal ...

  • Oh, ich habe es mit dem neuen Profil ohne alle Erweiterungen gut am laufen.
    Nun weiß ich aber nicht woran es lag.

    Muß wohl alle Erweiterungen einzeln tetsten...

    Einmal editiert, zuletzt von thunder-man (24. August 2007 um 01:59)

  • Bei mir funktioniert es problemlos mit folgenden Erweiterungen:

    Adblock Plus
    All-in-one Gesture
    BBCodeExtra
    ColorfulTabs
    Deutsches Wörterbuch
    DOM Inpsector
    FireFTP
    FlashGot
    FlatStyle
    IE Tab
    Inspect Control
    Linkification
    Menu Editor
    MozLab :)
    NoScript
    PDF Download
    Redirect Remover
    RefControl
    SaferCache
    SaferHistory
    Searchbar Autosizer
    StyleSheet Chooser Plus
    Table2Clipboard
    Talkbalk
    Thumbs

    falls dir das weiterhilft.

    Einmal editiert, zuletzt von Stilgar (24. August 2007 um 09:20)

  • Hey, muß ich mal vergleichen... ansonsten mit ListZilla extrahieren und dann
    nach und nach jede Erweiterung installieren ...

    Nun denke ich aber, das das Profil an sich auch defekt sein könnte,
    ist schon ein paar Jahre alt.
    Ich habe es auf E: und wenn ich vom Image XP neu aufspiele, was ich schon
    zig mal gemacht habe, dann nutze ich das Firefox und Thunderbird Profil immer weiter, vielleicht ist da ja nun ne Altlast drin.
    Wie gesagt habe ich ja immer auch ein paar Sekunden aussetzter, was mit dem neuen Profil nicht der Fall ist...

    Gestern hatte ich bei SELFHTML nach Optionlistenfelder geschaut,
    brauche ich da beide Zeilen?

    document.Testformular.Auswahl.options[4].text = "Unsinn";
    document.Testformular.Auswahl.selectedIndex = 2;

  • Sieht gut aus. Nur brauchst du hier halt noch "content" vorher:

    Jedes Forms Element hat im Prinzip folgenden "Pfad"

    content.document.forms[n].elements[n].eigenschaft/methode

    Statt forms[0] usw. kannst du auch den Namen einsetzen.


    Den Index einer Optionsliste wählst du dann so:

    content.document.forms[0].elements[0].selectedIndex=2

    oder eben:

    content.document.Testformular.Auswahl.selectedIndex = 2

    Wobei "content.document." zu 99% immer gleich sein dürfte, wenn man nicht auf den "Browser" selbst zugreift.


    Viele Grüße
    Stilgar

    Einmal editiert, zuletzt von Stilgar (24. August 2007 um 10:11)

  • Klasse, ich machte mir schon Gedanken, wie ich die 2. Zeile übergeben könnte.
    Das mit dem "content" dachte ich mir schon, habe ich in der FF.au3 gespickt =)

    Dieses und für Radio Button will ich dann mit "Learning by doing" mal
    selber ausprobieren.
    Aber jetzt gehe ich erst mal in der Sonne (An der Ruhr), wer weiß
    schon, wann die Sonne weg ist, also ausnutzen...

    so long
    Frank

  • Hier ist die erste Version um auf Bilder zu "klicken":

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

    Befehl:

    [autoit]

    _FFClickImage(ByRef $Socket, $sText, $sMode="src", $iTabIndex = -1)

    [/autoit]

    Aufruf (z.B. hier auf AutoIt.de)

    [autoit]

    _FFClickImage($Socket,"Mitgliederliste","title")

    [/autoit]

    Auswählen läßt sich das Bild anhand von:
    src
    alt
    name
    title
    id

    Als zweiten neuen Befehl gibt es:

    [autoit]

    _FFGetLinks(ByRef $Socket, $sMode = "href", $iTabIndex = -1)

    [/autoit]

    Dieser gibt ein Array von allen Links zurück, mit folgenden Modi:
    href
    name
    text
    innerHTML
    target
    id
    port
    protocol
    search
    hash

    Oder bei Angabe von "length" die Anzahl der Links.


    Viel Spaß damit!
    Stilgar

    Einmal editiert, zuletzt von Stilgar (24. August 2007 um 18:49)

  • Yeah, _FFClickImage ist klasse. Das autoit.de Beispiel klappt bei mir,
    nur auf http://www.peterzahlt.de/c2c-peterzahlt/index.do bekomme ich kein Bild geklickt.

    Der Html Code:
    <img
    src="images/common/home/icon_inputRefresh.gif"
    alt="Angaben ändern" />

    [autoit]

    _FFClickImage($Socket,"Angaben ändern","alt")
    oder _FFClickImage($Socket,"icon_inputRefresh.gif","src")

    [/autoit]

    Das 2 Bild hat:

    [autoit]


    _FFClickImage($Socket,"Klicken, um die eingegebene Nummer kostenfrei anzurufen","title")

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

    _FFClickImage($Socket,"Klicken, um die eingegebene Nummer kostenfrei anzurufen","alt")

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

    _FFClickImage($Socket,"btn_callForFree.gif","src")

    [/autoit]