Selenium

Selenium-Webautomatisierung mit Python

Selenium-Webautomatisierung mit Python
Jeder nutzt das Web irgendwann, daher ist es eine große Herausforderung für Entwickler, sicherzustellen, dass ihre Webanwendungen wie beabsichtigt funktionieren. Außerdem könnte die Web-Automatisierung sehr hilfreich sein.

Damit kommerzielle Software erfolgreich ist, muss sie einige Tests durchlaufen. Automatisierung könnte für Benutzertests nützlich sein und die Verwendung von Software genauso simulieren, wie es ein Benutzer tun würde. Es ist auch für Penetrationstests nützlich, z. B. um Passwörter zu knacken, SQL-Injections durchzuführen usw.

Abgesehen vom Testen könnte die Webautomatisierung sehr praktisch sein, um JavaScript-lastige Websites abzukratzen.

Selenium ist eines der effizientesten Tools für die Webautomatisierung. Es ist auch bei verschiedenen Sprachen sehr beliebt, verfügbar in Sprachen wie Java, JavaScript.

Installation

Selenium kann in Python mit dem Pip-Modul installiert werden, wie im folgenden Befehl gezeigt:

pip installieren Selenen

Es würde die Bibliothek und die benötigten Abhängigkeiten installieren, die Installation kann durch Importieren in einer interaktiven Sitzung bestätigt werden.

$python
Python 3.5.2 (Standard, 14.09.2017, 22:51:06)
[GCC 5.4.0 20160609] unter Linux
Geben Sie "Hilfe", "Copyright", "Credits" oder "Lizenz" ein, um weitere Informationen zu erhalten.
>>> Selen importieren

Da kein Fehler aufgetreten ist, war unsere Installation erfolgreich. Es endet jedoch nicht hier; Dies liegt daran, dass Selen mit Browsern wie Chrome und Firefox Hand in Hand arbeitet und einen Treiber vom Browser benötigt, um seine Aufgaben ausführen zu können.

Wir werden uns anschauen, wie man die Treiber installiert. Für Mozilla Firefox können Sie den Treiber herunterladen, der als . bekannt ist Geckotreiber von der github-Seite. Wenn Sie ein Chrome-Benutzer sind, können Sie den Treiber herunterladen, der als . bekannt ist Chromtreiber von der offiziellen Seite.

Nach dem Download fügen Sie den Treiber dann zum Pfad hinzu. Persönlich würde ich gerne eine solche Datei in meinem /usr/local/bin Verzeichnis, und ich würde Ihnen raten, dasselbe zu tun.

Wenn Sie dasselbe tun möchten, sollten Sie es mit dem folgenden Befehl aus Ihrem aktuellen Verzeichnis in das Behälter Verzeichnis.

$ sudo mv geckodriver /usr/local/bin
$ sudo mv chromedriver /usr/local/bin

Hinzufügen Geckotreiber oder Chromtreiber Führen Sie den folgenden Befehl aus, um den Pfad von diesem Verzeichnis aus zu öffnen.

$ export PATH=$PATH:/usr/local/bin/geckodriver
$ export PATH=$PATH:/usr/local/bin/chromedriver

Nachdem Sie den Treiber für Ihren gewünschten Browser zum Pfad hinzugefügt haben, können Sie überprüfen, ob alles in Ordnung ist, indem Sie Folgendes in einer interaktiven Sitzung ausführen.

Für Firefox:

$python
Python 3.5.2 (Standard, 14.09.2017, 22:51:06)
[GCC 5.4.0 20160609] unter Linux
Geben Sie "Hilfe", "Copyright", "Credits" oder "Lizenz" ein, um weitere Informationen zu erhalten.
>>> vom Selen-Import-Webtreiber
>>> Webtreiber.Feuerfuchs()

Für Chrome:

$python
Python 3.5.2 (Standard, 14.09.2017, 22:51:06)
[GCC 5.4.0 20160609] unter Linux
Geben Sie "Hilfe", "Copyright", "Credits" oder "Lizenz" ein, um weitere Informationen zu erhalten.
>>> vom Selen-Import-Webtreiber
>>> Treiber = Webtreiber.Chrom()

Wenn danach ein Browser auftaucht, funktioniert alles einwandfrei. Jetzt können wir mit Selenium coole Sachen machen.

Der größte Teil des Codes für den Rest dieses Artikels würde in der interaktiven Sitzung erstellt, Sie können ihn jedoch wie Ihr übliches Python-Skript in eine Datei schreiben.

Außerdem würden wir an der Treiber variabel aus dem obigen Code.

Besuch von Webseiten

Nachdem die Webseite geöffnet ist, können Sie jede Webseite besuchen, indem Sie die erhalten Methode an Treiber. Der geöffnete Browser lädt dann die eingegebene Adresse, so als ob Sie es selbst tun würden.

Vergessen Sie nicht http:// oder https:// zu verwenden, sonst müssten Sie mit unangenehmen Fehlern umgehen.

>>> Fahrer.get("http://google.com")

Dies würde die Google-Startseite laden.

Quellcode abrufen

Nachdem wir nun gelernt haben, Webseiten zu besuchen, können wir Daten von der besuchten Webseite abkratzen.

Von dem Treiber -Objekt können wir den Quellcode abrufen, indem wir das Seitenquelltext -Attribut können Sie dann mit dem HTML-Code mit der BeautifulSoup-Bibliothek tun, was Sie wollen.

>> Fahrer.Seitenquelltext

Textfelder ausfüllen

Wenn wir beispielsweise die Startseite von Google geladen haben und einige Informationen in das Suchfeld eingeben möchten; das geht ganz einfach.

Dazu verwenden wir das inspector-Element, um den Quellcode zu überprüfen und die Tag-Informationen des Suchfelds anzuzeigen. Klicken Sie dazu einfach mit der rechten Maustaste auf das Suchfeld und wählen Sie Element prüfen.

Auf meinem Rechner habe ich folgendes bekommen:

value="" aria-label="Suchen" aria-haspopup="false" role="combobox" aria-autocomplete="list"
style="border: medium none; padding: 0px; margin: 0px; height: auto; width: 100%;
Hintergrund: transparent
url("data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEA
Ow%3D%3D") scrollen wiederholen 0% 0%; Position: absolut; Z-Index: 6; links: 0px; Umriss:
mittel keine;" dir="ltr" rechtschreibprüfung="false" type="text">

Mit Selen können wir Elemente entweder nach Tag-Name, ID, Klassenname usw. auswählen.

Sie können mit folgenden Methoden implementiert werden:

.find_element_by_id
.find_element_by_tag_name
.find_element_by_class_name
.find_element_by_name

Auf der Google-Webseite hat das Suchfeld eine ID lst-ib, also würden wir element nach id finden find.

>>> search_box = Treiber.find_element_by_id("lst-ib")

Jetzt haben wir das Element gefunden und in a . gespeichert Suchbox Variable können wir einige Operationen im Suchfeld ausführen.

>>> search_box.send_keys("Planet Erde")

Dies würde den Text „Planet Earth“ in das Feld eingeben.

>>> search_box.klar()

Dies würde den eingegebenen Text aus dem Suchfeld löschen. Sie sollten die verwenden send_keys Methode wieder, im nächsten Abschnitt würden wir auf die Suchschaltfläche klicken, damit wir etwas zu suchen haben.

Auf die richtigen Schaltflächen klicken

Nachdem wir das Suchfeld mit einigen Informationen gefüllt haben, können wir weitersuchen.

So wie wir das Suchfeld gefunden haben, finden wir auch die Suchschaltfläche.

Auf meinem Rechner habe ich folgendes bekommen:

type="submit">

Wenn wir dies betrachten, können wir das name-Attribut verwenden. Wir können es mit dem folgenden Code abrufen:

>>> search_button = Treiber.find_element_by_name("btnK")

Nachdem wir das gewünschte Tag gefunden haben, können wir dann mit dem . auf den Button klicken klicken Methode.

>>> search_button.klicken()

Seien Sie jedoch vorsichtig, aufgrund der automatischen Vorschläge von Google können Sie am Ende nach etwas anderem suchen.

Um dies zu umgehen, müssen Sie die Tastatur sofort auf die Eingabetaste drücken. Schlüssel würden den Rahmen dieses Artikels sprengen, aber hier ist trotzdem der Code.

>>> aus Selen.Webtreiber.verbreitet.Schlüsselimport Schlüssel
>>> search_box = Treiber.find_element_by_id("lst-ib")
>>> search_box.send_keys("Planet Erde")
>>> search_box.send_keys(Schlüssel.RÜCKKEHR)

Mit dem obigen Code müssen wir nicht auf die Suchschaltfläche klicken. Es funktioniert genauso wie wenn wir die Eingabetaste drücken, nachdem wir die Suchwerte eingegeben haben.

Diese Methode zum Anklicken von Schaltflächen funktioniert nicht nur mit Schaltflächen, sondern auch mit Links.

Screenshots machen

Du hast richtig gelesen! Sie können Screenshots mit Selen machen, und es ist so einfach wie in den vorherigen Abschnitten.

Was wir tun werden, ist die . anzurufen save_screenshot -Methode auf das Treiberobjekt, wir würden dann den Namen des Bildes übergeben und der Screenshot wird erstellt.

>>> Fahrer.save_screenshot("Planet-Erde.png")

Stellen Sie sicher, dass der Bildname a .png-Erweiterung, sonst könnten Sie ein beschädigtes Bild haben.

Wenn Sie mit den Operationen fertig sind, können Sie den Browser schließen, indem Sie den folgenden Code ausführen:

>>> Fahrer.schließen()

Fazit

Selen ist als sehr leistungsfähiges Werkzeug bekannt, und seine Verwendung gilt als eine wichtige Fähigkeit für Automatisierungstester considered. Selen kann viel mehr als in diesem Artikel besprochen, Tastaturbewegungen können tatsächlich repliziert werden, wie mit gezeigt Schlüssel.RÜCKKEHR. Wenn Sie mehr über Selen erfahren möchten, können Sie es sich ansehen Dokumentation, es ist ziemlich klar und einfach zu bedienen.

Microsoft Sculpt Touch Wireless-Maus Bewertung
Ich habe vor kurzem gelesen, dass Microsoft Sculpt Touch kabellose Maus und beschloss, sie zu kaufen. Nachdem ich es eine Weile benutzt hatte, beschlo...
AppyMouse On-Screen Trackpad und Mauszeiger für Windows Tablets
Tablet-Benutzer vermissen oft den Mauszeiger, insbesondere wenn sie die Laptops gewohnt sind. Die Touchscreen-Smartphones und -Tablets bieten viele Vo...
Mittlere Maustaste funktioniert nicht unter Windows 10
Das mittlere Maustaste hilft Ihnen beim Scrollen durch lange Webseiten und Bildschirme mit vielen Daten. Wenn das aufhört, werden Sie am Ende die Tast...