FF.Au3 und MOZREPL aktualisieren

  • Ich habe mir das alles mal umgestrickt und die wd_demo.au3 ein wenig erweitert (WebDriver-Demo.au3), sowie an einigen Stellen ein paar Korrekturen gemacht.

    Mit der WebDriver-Demo.au3 wird nun automatisch der richtige geckodriver (für Chrome wird nur der aktuelle chromedriver) gedownloadet und entpackt, falls er noch nicht vorhanden ist.

    Wollte euch das nicht vorenthalten... und wenn jemand Lust hat, kann er das ja noch weiter aufpeppen...

    Inhalt
  • Unknown function name deutet darauf hin, dass die wd_core.au3 die json.au3 nicht eingebunden bekommt (ggf. Pfad prüfen).

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Nachtrag :

    Um sicherzugehen, kommentiere in der wd_core.au3 folgende Zeile aus :

    #include <JSON.au3>

    und schreibe stattdessen :

    #include "xxx\JSON.au3"

    wobei xxx der absolute Pfad zu der JSON.au3 ist, also z.B. so etwas wie :

    #include "C:\Test\Json\JSON.au3" -> hier natürlich DEINEN Pfad eintragen !

    Das ist aber nur ein Schnelltest - keine Dauerlösung :!:

    Wenn es daran liegt, dann die Angaben von Bitnugger aus Beitrag #17 befolgen.

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Grufti39

    Prinzipiell würde ich dir empfehlen, während der Entwicklung oder beim Test eines Skripts nicht zu kompilieren und dann auszuführen, sondern im geöffneten und aktiven SciTE-Fenster die "F5"-Tast zum ausführen zu drücken. Fehlermeldungen wie in deiner MsgBox findest du dann in der SciTE-Konsole (dem unteren Fensterbereich). Damit entgehst du möglichen irreführenden Zeilenangaben in der Ausgabe. Außerdem kannst du über einen Doppelklick auf die Fehlerzeile in der Konsole direkt zur Fehlerzeile springen und selbst eine Lösung testen.

    Grüße autoiter

  • Danke für die Hinweise, aber so gehe ich schon seit langem vor. Auch den Debugger verwende

    ich nach Bedarf. Wobei noch vieles in derHandhabung offen ist und mühsam herausgegoogelt werden muss.

    So suche ich bisher vergeblich nach Angaben, wie die Funktionen der _WD_-UDF zu handhaben sind.

    Auch die Umstellung von Notepad++ auf SciTE klappt ganz gut. Gibt es bei SciTE eine Möglichkeit, zwei Listings miteinander zu vergleichen? Dieses Feature vermisse ich sehr.

    Schwierigkeiten habe ich mit der Konsole. Was muss ich tun, damit mir die Konsole nicht beim Scriptende verschwindet?

    So habe ich ständg kleine Fragen, aber keinen Gesprächspartner dafür. (Wie springe ich mit der Tastatur von Listing zu Listing, wenn ich mehrere Listings in Scite offen habe? usw. ....) Für Hinweise auf entsprechde Beschreibungen wäre ich dankbar.

    Grüße zum Jahresende

    Friedhelm39

  • Um zwei Dateien miteinander zu vergleichen empfehle ich WinMerge.

  • Hallo Grufti39

    Was muss ich tun, damit mir die Konsole nicht beim Scriptende verschwindet?

    Die Inhalte verschwinden nicht. Du musst nur mal durch den Inhalt scrollen. Überschrieben wird die Konsole erst beim nächsten Skriptstart.

    Meinst du mit "Listings" Skripte?

    Wenn mehrere offen sind, kannst du mit F6 zum nächsten springen.

    Grüße autoiter

  • So suche ich bisher vergeblich nach Angaben, wie die Funktionen der _WD_-UDF zu handhaben sind.

    _WD_-UDF ... boar... da habe ich aber auf der Leitung gestanden... die WebDriver-UDF meinst du... ja, die Infos dazu sind nicht gerade erschöpfend... du weißt, dass es dafür einen Hilfe-Thread gibt?

    Gibt es bei SciTE eine Möglichkeit, zwei Listings miteinander zu vergleichen? Dieses Feature vermisse ich sehr.

    SciTE bietet keine direkte Möglichkeit dafür, doch du könntest aus SciTE heraus ein eigenes Script (*.au3|*.lua) starten, dass dann z.B. WinMerge mit den gewünschten Dateinamen als Parameter aufruft.

    Schwierigkeiten habe ich mit der Konsole. Was muss ich tun, damit mir die Konsole nicht beim Scriptende verschwindet?

    Die Ausgabe-Konsole (Output-Pannel) von SciTE kannst du mit F8 ein/ausblenden. Wenn du dein Script als CUI ausführen lässt und die Konsole der Eingabeaufforderung damit meinst, kannst du einfach auf einen Tastendruck warten... z.B. mit _IsPressed() - hilfreicher wäre, wenn du uns dazu ein Beispiel-Script zeigst.

    Wie springe ich mit der Tastatur von Listing zu Listing

    Mit F6 oder Strg + PGDN zum nächsten, mit Shift + F6 oder Strg + PGUP zum vorigen. Mit Strg + F1 bekommst du übrigens die Hilfe zu SciTE angezeigt.

  • Kleiner Tipp an alle AutoIT-Anfänger,

    ... welche die WebDriver.zip Verion von BitNugger testen und sich wundern, dass schon die erste Demo "DemoNavigation" nicht funktioniert, die scheinbar einfachste Übung/Demo.

    Der Grund ist relativ banal. Die Web-Adresse "autoit.com" gibt es nicht (mehr).

    Mit der Web-Adresse "autoitscript.com" funktioniert es dann wunderbar.

  • Hallo ich bin Anfänger mit bescheidenen Englischkenntnissen und versuche anhand eines Projektes das Programmieren bzw. WebDriver UDF zu lernen.

    Ich spiele gerade ein wenig mit der Demo herum um alles besser zu verstehen. Dabei arbeite ich mit Firefox.

    Nun meine Frage:

    Gibt es eigentlich die Möglichkeit Logins / Sessions zu speichern?

    Damit ich beim Testen mich nicht immer wieder die Login-Daten mit anschließendem nervigen Bild-Captcha eingeben muss?

  • Hallo LostBit23 !

    Hallo ich bin Anfänger mit bescheidenen Englischkenntnissen und versuche anhand eines Projektes das Programmieren bzw. WebDriver UDF zu lernen.

    Zum Thema WebDriver UDF möchte ich vorab die folgenden Aussagen aus diesem Thread zitieren :

    Ich würde daher etwas Zeit investieren und mein Script auf WinHTTP umstellen. Ist sowieso wesentlich performanter als irgendeine Browser Steuerung je sein könnte. Davon ab bist du unabhängig vom jeweiligen Clientsystem und dessen Browser.

    Die WebDriver UDF hingegen ist vermutlich etwas langsamer aber dafür zukunftssicherer, da es die W3C Spezifikationen umsetzt.
    Bei genauer Betrachtung aber genauso "instabil (was Zukunftssicherheit angeht)", da das UDF ebenso auf WinHTTP aufbaut.

    Du interagierst mit keinem Browser bei WinHttp. WinHttp ist das was bei einem Browser an Kommunikation mit dem Server hinter den Kulissen läuft.

    Bzgl. 'Zukunftssicherheit' sind beide Ansätze gleichwertig. Wie water bereits schrieb, wird die WinHTTP-UDF innerhalb der Webdriver-UDF verwendet.

    Eine gewisse Einarbeitungszeit dürfte in beiden Varianten anfallen. Zu WinHTTP gibt es aber bereits viele Beispiele, so dass, abhängig von der Komplexität Deines Skriptes, dieser Weg ggf. kürzer ist.

    Falls Du nicht zwingend an der WebDriver UDF selbst hängst, erscheint mir WinHTTP für den Einstieg geeigneter zu sein (u.A. besser dokumentiert).

    Gibt es eigentlich die Möglichkeit Logins / Sessions zu speichern, damit ich beim Testen nicht immer wieder die Login-Daten mit anschließendem nervigen Bild-Captcha eingeben muss?

    'Beim Testen...' legt nahe, dass es sich um Deine eigene Website handelt. In diesem Fall kannst Du Logindaten beim Request mitsenden und Dir einen Zugang ohne Captcha schaffen. Bei Fremdsites musst Du prüfen, ob ein solches Login vorgesehen und zulässig ist.

    Zudem speichern div. Sites Deine Zugangsdaten (z.B. wenn Mitglied) auf Deinem Rechner ab, d.h. ein permanentes Anmelden ist nicht erforderlich.

    Falls Du aber Captchas von Websites 'umgehen' möchtest welche dies nicht gestatten, wirst Du hierzu wohl keine Tipps bekommen (siehe 'Forumsregeln') ;).

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Hallo @Musashi danke für deine Antwort. Ich möchte das Projekt unbedingt mit WebDriver UDF umsetzen, da ich schon ein wenig Erfahrung mit der IE UDF habe.

    Es handelt sich nicht um meine eigene Seite.

    Wenn ich die Seite normal über den Firefox öffne, wird sich der Login gemerkt bzw. bleibt gespeichert.

    Mache ich es jedoch über das Script, gehen alle Daten nach dem Schließen verloren.

    Wenn ich ein Addon installiere oder mich bei Frirefox Sync anmelde gehen diese Daten ebenfalls verloren.

    Aber nur in dem dem Firefox der durch das Script geöffnet wurde.

    Es ist so, als würde der über das Script gestartete Firfefox jedes Mal zurückgesetzt.

    Bei der IE UDF hatte ich dieses Problem nicht.

    Ich weiß nicht genau ob es an Firefox selbst liegt oder ob das bei der WebDriver UDF so vorgesehen ist.

  • Ich möchte das Projekt unbedingt mit WebDriver UDF umsetzen, da ich schon ein wenig Erfahrung mit der IE UDF habe.

    ...

    Es ist so, als würde der über das Script gestartete Firefox jedes Mal zurückgesetzt.

    Bei der IE UDF hatte ich dieses Problem nicht.

    Ich weiß nicht genau ob es an Firefox selbst liegt oder ob das bei der WebDriver UDF so vorgesehen ist.

    Um es ehrlich vorweg zu sagen, ich habe bisher nicht mit der WebDriver UDF gearbeitet. Daher von mir nur noch der Tipp : Die UDF unterstützt ja auch Chrome - Hast Du es damit mal probiert ?

    LostBit23 Nachtrag :

    Neben dem Hauptthread im engl. Forum ( WebDriver UDF ), gibt es auch noch einen separaten WebDriver UDF - Help & Support Thread. Ich weiß ja nicht wie "bescheiden [sic] ;)" Deine Englischkenntnisse sind, aber dort sind die Chancen auf eine Antwort (direkt vom Ersteller Danp2) sicher größer. Falls Du mehr mit der UDF machen möchtest, wirst Du um diese Quellen eh nicht herumkommen.

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

    Einmal editiert, zuletzt von Musashi (22. April 2019 um 00:17)

  • Ich habe eine Lösung für mein Problem gefunden.

    Es wird standardmäßig immer eine neue Instanz des Browser geöffnet, darum werden auch keine Logins gespeichert.

    Es gibt aber die Möglichkeit den Browser mit einem User-Profil zu öffnen. Derzeit habe ich es nur für Chrome gefunden.

    Wenn man $sDesiredCapabilities mit seinem eigenen Pfad zum Chrome-Userprofil ergänzt funktioniert es.

    Demo Version:

    $sDesiredCapabilities = '{"capabilities": {"alwaysMatch": {"goog:chromeOptions": {"w3c": true }}}}'

    Neue Version: Dabei wird der Browser auch maximiert und die Ferngesteuert-Anzeige wird ausgeblendet.

    $sDesiredCapabilities = '{"capabilities": {"alwaysMatch": {"goog:chromeOptions": {"w3c": true, "args":["start-maximized","disable-infobars","user-data-dir=C:\\Users\\DEIN_BENUTZERNAME\\AppData\\Local\\Google\\Chrome\\User Data\\Default"] }}}}'