Docker+Selenium-Methode zur Realisierung automatischer Gesundheitsberichte

Docker+Selenium-Methode zur Realisierung automatischer Gesundheitsberichte

In diesem Artikel wird das Gesundheitsmeldesystem einer bestimmten Universität als Beispiel verwendet, um den Automatisierungsvorgang der Webseite abzuschließen. Der verwendete Technologie-Stack ist wie folgt:
Docker \ Selenium \ Python \ yagmail \ ssh usw.

Grundgedanke:
1. Code lokal schreiben und testen
2. Erstellen Sie einen neuen Docker-Container und konfigurieren Sie die Umgebung
3. Laden Sie den Code auf den Server hoch und kopieren Sie ihn in den Docker-Container
4. Entpacken und debuggen Sie den Code und löschen Sie den Code, nachdem Sie bestätigt haben, dass kein Problem mit dem Code vorliegt
6. Verlassen Sie den Container und machen Sie den Container zu einem Spiegel
7. Instanziieren Sie den Container mit dem Image und mounten Sie den Code

1. Code lokal schreiben und debuggen

Schauen wir uns zunächst das Zielweb an, auf dem wir arbeiten müssen:
Anmeldeseite:

Anmeldeseite

Formularseite:

Bildbeschreibung hier einfügen

Die Bedienung ist ganz einfach. Melden Sie sich einfach an, aktivieren Sie die gewünschten Optionen und klicken Sie dann auf „Senden“.

Quellcode angehängt:

Hauptdatei:

Hauptdatei

Senden Sie E-Mails über Yagmail:

Yagmail-Datei

Hinweis: Hier wird der [Autorisierungscode] der E-Mail-Adresse verwendet, nicht das Passwort. Das QQ-Postfach kann unter „Einstellungen“ => „Konto“ bedient werden:

Bildbeschreibung hier einfügen

Selenium-Automatisierung:

Selenium-Automatisierung

Hier wird die XPath-Positionierung verwendet und der Browser kann sie direkt erfassen, was sehr praktisch ist:

Bildbeschreibung hier einfügen

Denken Sie daran, am Ende quit und stop hinzuzufügen, da sich der Prozess sonst staut und nicht geschlossen werden kann, was zu einem Absturz führt. Nachdem er lokal ohne Probleme ausgeführt wurde, können Sie mit dem nächsten Schritt fortfahren.

2. Konfigurieren Sie die Docker-Containerumgebung

Die Umgebungskonfiguration erfolgt in den folgenden Schritten
1. Ziehen Sie das Python-Image
2. Erstellen Sie einen neuen Container mit dem Python-Image
3. Installieren Sie die für den Betrieb erforderlichen Drittanbieterbibliotheken
4. Installieren Sie den Chrome-Browser und den Chrome-Treiber
5. Testdateien zum Debuggen hochladen

Ziehen Sie das Python-Image <br /> Dazu müssen Sie sicherstellen, dass Ihr Docker korrekt installiert ist, und das Image mit dem folgenden Befehl ziehen:

Docker-Image-Pull Python

Verwenden Sie den folgenden Befehl, um zu überprüfen, ob es lokal abgerufen wurde:

Docker-Image ls

Erstellen Sie einen neuen Container mit dem Python-Image

Mit dem folgenden Befehl können Sie einen neuen Container erstellen und den Container aufrufen:

docker run -it python /bin/bash

Installieren Sie die für den Betrieb erforderlichen Drittanbieterbibliotheken <br /> Die Bibliothek kann über einen einfachen Pip-Befehl installiert werden, beispielsweise:

pip installieren selenium
pip installieren yagmail
pip installieren pytz 

Bildbeschreibung hier einfügen

Nach der Installation können Sie debuggen und bestätigen. Ich werde hier nicht ins Detail gehen.

Installieren Sie den Chrome-Browser und Chromedriver
Der folgende Befehl kann für Ubuntu-Systeme und Baidu für andere Systeme verwendet werden:

# Laden Sie wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb herunter
# Installieren Sie dpkg -i google-chrome-stable_current_amd64.deb

Bevor Sie den Chrome-Treiber installieren, müssen Sie die Versionsnummer von Chrome überprüfen und den entsprechenden Treiber entsprechend der Versionsnummer herunterladen:

# Überprüfen Sie die Chrome-Version google-chrome --version

Was den Chromedriver betrifft, habe ich ihn heruntergeladen, lokal entpackt und per SSH auf den Server übertragen:
Download-Adresse: http://chromedriver.storage.googleapis.com/index.html
Nach dem Herunterladen und Dekomprimieren laden Sie es mit dem SSH-Befehl hoch:

scp Ihre Treiberadresse/Chromedriver root@Server IP:Serververzeichnis

Kopieren Sie es dann vom Host in den Container:

Docker CP Chromwdriver Containername: Containerverzeichnis

Auf diese Weise wird auch der Code hochgeladen. Für die nachfolgenden zugehörigen Vorgänge ist zum einfachen Debuggen nicht mehr wiederholt die Eingabe des Python-Befehls erforderlich:

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

Laden Sie zur Bestätigung die Testdatei hoch:

Testdateien

Wenn die E-Mail korrekt ausgegeben und versendet werden kann, können Sie mit dem nächsten Schritt fortfahren

Bildbeschreibung hier einfügen

Machen Sie aus dem Container ein Bild

Geben Sie nach dem Löschen der Testdatei „exit“ ein, um den Container zu verlassen, und verwenden Sie den folgenden Befehl, um das Image zu erstellen:

sudo docker commit eafd9111ada6 docker/sele_heath

Der Wert nach dem Commit ist die Container-ID oder der Containername. Wenn Sie nicht sicher sind, können Sie docker ps -a eingeben, um ihn anzuzeigen.
docker/sele_heath ist der Name des neuen Images

Nach Abschluss können Sie den folgenden Befehl eingeben, um das neu erstellte Image anzuzeigen:

Docker-Bilder Docker/Sele_heath

Instanziieren Sie einen Container mithilfe eines Images und mounten Sie den Code

Nachdem das Image erstellt ist, können Sie mit dem letzten Schritt fortfahren. Der Befehl lautet wie folgt:

docker run -d -v /home/admin/heath2:/usr/src -w /usr/src docker/sele_heath python main.py

Befehlsanalyse:
-d: den Prozess blockieren
-v: Adresszuordnung
/home/admin/heath2: Verzeichnis der Codedateien
/usr/src: Wird dem Verzeichnis zugeordnet, das dem Container entspricht
-w /usr/src: Das Verzeichnis zum Ausführen von Dateien innerhalb des Containers, das normalerweise mit dem zugeordneten Verzeichnis identisch ist.
docker/sele_heath: Bildname
python main.py: Verwenden Sie Python, um die Datei main.py auszuführen

Um zu prüfen, ob der Container ordnungsgemäß läuft, geben Sie folgenden Befehl ein:

Docker PS 

Bildbeschreibung hier einfügen

An diesem Punkt sind alle Vorgänge abgeschlossen. Ich muss nur noch aufstehen und mein Telefon in die Hand nehmen, um meine E-Mails zu überprüfen :

Bildbeschreibung hier einfügen

Dies ist das Ende dieses Artikels zum Erstellen automatisierter Gesundheitsberichte mit Docker+Selenium. Weitere relevante Inhalte zur Docker-Selenium-Automatisierung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Praktische Möglichkeit zum Erstellen einer verteilten Selenium-Grid-Umgebung mit Docker
  • Erstellen einer verteilten Selenium-Umgebung basierend auf Docker
  • So verwenden Sie Selenium + Testng, um Webautomatisierung in Docker zu realisieren
  • Beispielcode zum Testen einer Technologieanwendung basierend auf Docker+Selenium Grid

<<:  Organisationsstruktur der Vue-Komponente und Details zur Komponentenregistrierung

>>:  Tipps zum Erstellen von HTML-E-Mails, die in herkömmlichen Postfächern normal angezeigt werden können

Artikel empfehlen

So legen Sie MySQL-Berechtigungen mit phpmyadmin fest

Inhaltsverzeichnis Schritt 1: Melden Sie sich als...

Das Miniprogramm implementiert nativ das linksseitige Schubladenmenü

Inhaltsverzeichnis WXS-Antwortereignis Plan A Sei...

Beispiel für eine automatische Importmethode für allgemeine Vue3.0-Komponenten

1. Voraussetzungen Wir verwenden zum Importieren ...

Fehler bei der Eingabe chinesischer Zeichen im Flex-Programm Firefox

In niedrigeren Versionen von Firefox können keine ...

So konfigurieren Sie den Runner-Container in Docker

1. Erstellen Sie einen Runner-Container mk@mk-pc:...

Erstellen Sie mit PS in zwei Minuten eine Homepage für eine XHTML+CSS-Website

Es gibt zu viele Artikel über Webstandards zur We...

Zusammenfassung der @-Verwendung in CSS (mit Beispielen und Erklärungen)

Eine At-Regel ist eine Deklaration, die Anweisung...

Wissen Sie, welche Möglichkeiten es gibt, in Vue Routen zu überspringen?

Inhaltsverzeichnis Die erste Methode: Router-Link...

Mehrere allgemeine Beispielcodes für Weiterleitungsverbindungen in HTML

Code kopieren Der Code lautet wie folgt: window.l...

Beispielanalyse zur Metadatenextraktion von MySQL und Oracle

Inhaltsverzeichnis Vorwort Was sind Metadaten? Ad...

So ändern Sie Port 3389 des Remotedesktops von Windows Server 2008 R2

Die Standardportnummer des Remotedesktops des Win...