【Test】Studiennotizen zum Dramatiker – 02

Am Ende des letzten Kurses habe ich endlich den umfassenden Treiber von Playwright heruntergeladen. Es wird gesagt, dass es in Zukunft nicht mehr nötig sein wird, unterschiedliche Treiber zu finden, weil man unterschiedliche Browser verwendet, und zwischen verschiedenen Versionsnummern zu unterscheiden. Einhelliges Lob erhalten....

    Nachdem ich das letzte Mal nach der ersten Sitzung viele Updates und Vorschläge von meinen Freunden erhalten habe, habe ich mich für dieses Tutorial als Ergänzung zu anderen offiziellen Tutorials auf dem Markt entschieden, das Testübungsprogramm zum Lehren, also zur tatsächlichen Umsetzung, zu verwenden Etwas Automatisierung. Schreiben Sie automatisierte Skripte, testen Sie kontinuierlich verschiedene Wissenspunkte (Rate-Test-Zusammenfassung-Retest-Bestätigung), kombiniert mit dem Wörterbuch-Tutorial auf der offiziellen Website, ist jeder nicht nur leicht zu erlernen und anschaulich, sondern auch beeindruckt.

    Ich habe schon einmal mehr über Dramatiker erfahren und einige neue und nützliche Informationen gefunden:

  • Playwright ist kein Produkt einer kleinen Werkstatt, sondern eine neue Generation von leichtgewichtigen Automatisierungsframeworks, die von Microsoft eingeführt wurden. Daher können die nachfolgenden Updates, die Entwicklung und der ökologische Aufbau dieses Produkts garantiert werden, und jeder kann sicher sein, ohne nachzudenken zu lernen.

  • Aus der Beschreibung geht hervor, dass Dramatiker sehr freundlich zu Python ist, und man kann sogar sagen, dass es für Python maßgeschneidert ist und selbst vollständig dem niederschwelligen, schnellen und einfachen Stil von Python entspricht. Die Freunde, die Python lernen, haben ein Vermögen gemacht ~

  • Playwright unterstützt Aufnahmevorgänge. Im Vergleich zur Aufnahme von Selenium ist diese Aufnahme zuverlässiger, einfacher und stabiler usw., aber ich muss sie selbst testen, um den spezifischen Effekt zu kennen. Schauen Sie sich nicht die Werbung an, um den Effekt zu sehen. Allerdings wurde der Bereich der Aufnahmeautomatisierung von großen Leuten aufgrund verschiedener Mülleffekte schon immer diskriminiert. Ich hoffe, dass der Dramatiker dieses Phänomen auf einen Schlag ändern kann.

Als nächstes müssen wir den spezifischen Aufnahmeeffekt erleben. Testwebsite, eine kleine Werbeseite von mir: woqurefan.cn

Laut dem offiziellen Website-Tutorial: Geben Sie zum Starten den Befehl in cmd oder Terminal ein.

python3 -m Dramatiker Codegen -o 'test_526.py' -b Chromium http://woqurefan.cn/

Unter diesen ist Python3 -m Playwright Codegen eine feste Methode zum Aufzeichnen von Befehlen.

-o 'Dateiname' bedeutet, den Code als Datei zu speichern.

-b Laufwerks-URL bedeutet, welcher Browser zum Öffnen welcher Seite verwendet wird. Sie müssen die URL nicht schreiben und sie wird aufgezeichnet, wenn Sie sie manuell eingeben.

Nach der Ausführung wird automatisch ein Google-Browser geöffnet, die Website-Seite aufgerufen und gleichzeitig eine Codebearbeitungsseite angezeigt:

Und die Seite wechselt automatisch in den Debugging-Modus. Wenn Sie mit der Maus über ein Element fahren, können Sie den Erfassungs- und Positionierungscode des Elements direkt anzeigen.

Als ich auf diese Schaltfläche klickte, geschah eine magische Szene. Diese Codezeile wurde automatisch zum generierten Code-Bearbeitungsfeld hinzugefügt:

Dann habe ich erneut versucht, auf die Schaltfläche zur Eingabe der Interviewfrage zu klicken, und keine Überraschung, dieser Code wurde erneut automatisch generiert:

Dann habe ich zufällig auf eine Interviewfrage geklickt:

Sie können sehen, dass der Code erneut generiert wird, aber dieses Mal erfolgt die Positionierung mithilfe von Text-Copywriting. Was den Grund für die Verwendung einer Textkopie anstelle eines bestimmten Namens und anderer Attribute betrifft, warten Sie bitte auf den spezifischen Test in unserem nächsten Artikel.

Nachdem ich diese Seite geschlossen habe, kann ich sehen, dass der Code gerade gespeichert wurde:

Nachdem wir es mit Pycharm geöffnet haben, studieren wir dieses Demo-Skript sorgfältig.

Zeile 1 wird aus diesem Modul namens sync_api importiert. Der Name liest sich als synchrone Schnittstelle. Wenn man es so betrachtet, sollte Palywright auch den asynchronen Modus unterstützen. Es scheint, dass wir den asynchronen Modus später untersuchen können.

Darauf folgen eine Def-Run-Funktion und ein Hauptprogrammcodeblock mit. Der With-Codeblock ist nur für den Aufruf der Ausführungsfunktion verantwortlich. Wenn zu Beginn Code eingerichtet werden muss, können Sie versuchen, ihn mit einem Codeblock in diesen einzufügen, z. B. durch gleichzeitiges Aufrufen der Ausführungsfunktion, um mehrere gleichzeitige Browsertests zu starten.

Innerhalb der Ausführungsfunktion wird zunächst ein variabler Browser definiert. Der Zweck sollte darin bestehen, den Treiber- und Kopfmodus zu definieren. Unter diesem Gesichtspunkt sollte Playwright auch den Headless-Modus unterstützen, und diese Codezeile kann geändert werden, um verschiedene Treiber zu starten. Wenn wir dann in Zukunft gleichzeitige Kompatibilitätstests für mehrere Browser durchführen möchten, können wir mit der Browserzeile beginnen (jeder sollte immer so analog lernen und denken).

Zeile 6 ist eine Kontextvariablendeklaration und wird von einer bestimmten Funktion des Browsers implementiert. Dann kann ich davon ausgehen, dass der Kontext eine Instanz des Browsers ist. Es ist, als wäre der Browser eine Zeichnung und der Kontext ein tatsächliches Produkt, das nach dieser Zeichnung erstellt wurde. Danach müssen wir testen, ob bei mehreren Deklarationen mehrere Browserfenster oder mehrere Registerkarten unter einem Browser gestartet werden.

Zeile 7 ist die Deklaration der Seitenvariablen, die auf der Erstellung des Kontexts basiert. Wenn man sich den englischen Namen ansieht, sieht es so aus, als wäre eine neue Seite erstellt worden. Und die folgenden Codes sind alle page.xxxxx, was dem Treiber von Selenium sehr ähnlich sieht, aber ich habe im Moment einige Zweifel, der Treiber kann mehrere Seiten und mehrere Registerkarten steuern, und diese Seite klingt so, als ob sie nur in der sein kann aktuelle Registerkarte zur Bedienung. Um dies herauszufinden, müssen unsere Folgetests durchgeführt werden. Ich werde die Antwort nicht im Voraus bekannt geben, sonst werde ich nicht beeindruckt sein.

Zeile 8 ist die Funktion „Seite springen, gehe zu“.

Die Zeilen 9 bis 11 sind spezifische Positionierungen und Operationen, und die Form ist genau die gleiche wie bei Selen. Bisher zwei gelernte Methoden: get_by_role("Tag-Name",Name="") get_by_text("spezifisches Copywriting") Eine gelernte Operation: .click() click.

Zeile 12 ist die Schlussseite

Zeile 15 dient zum Schließen der Kontextinstanz

Zeile 16 dient zum Schließen der Browserinstanz

Die oben genannten drei Schließungen scheinen problematischer zu sein. Bei unserer eigentlichen Arbeit müssen wir den Abschlussgrad entsprechend unseren Anforderungen auswählen. In Pytest oder Unitest sollten diese Abschlüsse auch an geeigneten Positionen platziert werden, damit mehrere Anwendungsfälle normal ausgeführt werden können. Insbesondere im Modus gleichzeitiger gemischter asynchroner Serien sollte diesen drei Schließungen mehr Aufmerksamkeit geschenkt werden. Später werden wir einen separaten Artikel schreiben, um die spezifischen Auswirkungen und Prinzipien der drei Schließungen zu testen.

Nun, das ist das Ende der heutigen Lektion, Sie müssen es nicht selbst ausprobieren, dieses Tutorial reicht aus.

Acho que você gosta

Origin blog.csdn.net/qq_22795513/article/details/131205427
Recomendado
Clasificación