Heim > Technologie-Peripheriegeräte > IT Industrie > So verwenden Sie Selenium Webdriver für Cross -Browser -Tests

So verwenden Sie Selenium Webdriver für Cross -Browser -Tests

Lisa Kudrow
Freigeben: 2025-02-15 11:08:12
Original
944 Leute haben es durchsucht

So verwenden Sie Selenium Webdriver für Cross -Browser -Tests

Dieser Artikel wurde ursprünglich auf Lambdatest veröffentlicht. Vielen Dank, dass Sie die Partner unterstützt haben, die SitePoint ermöglichen.

selen ist ein beliebtes Automatisierungstest -Framework, das hauptsächlich für den Cross -Browser -Test verwendet wird. Es ist Open Source und ideal für die Automatisierung von Webanwendungen in verschiedenen Browsern wie Firefox, Chrome, Internet Explorer und Microsoft Edge. Selen ist zu einem renommierten Framework geworden und bietet anderen Test -Frameworks wie HP QTP (Quick Test Professional) und AKA HP UFT (Unified Functional Testing) einen starken Wettbewerb. In diesem Tutorial für Selenium WebDriver können Sie ein grundlegendes Verständnis der Komponenten der Selen -Suite, der Selenium WebDriver Architecture, entwickeln und zeigen, wie Sie Automatisierung ausführen, um eine Website für Cross -Browser -Kompatibilität mit Selenium WebDriver für Google Chrome, Mozilla Firefox zu testen und zu testen. Internet Explorer.

selen ist eine Kombination verschiedener Tools und jedes Tool spielt eine entscheidende Rolle bei der Automatisierung von Webtests. Tauchen wir in das Webdriver -Tutorial ein.

Key Takeaways

  • Verstehen von Seleniumkomponenten: Erfassen Sie die Rollen von Selenium-IDE, Webdriver, Gitter und Fernbedienung, um Cross-Browser-Tests effektiv zu automatisieren und zu verwalten.
  • Verwenden Sie Webdriver für direkte Browserkommunikation: Erfahren Sie, wie Selenium Webdriver direkt mit dem Browser ohne einen Mittelsmann interagiert und es für die Browserautomatisierung schneller und zuverlässiger macht.
  • Parallele Tests mit Selen -Gitter implementieren: Verwenden Sie Selenium Grid, um Tests parallel über verschiedene Umgebungen hinweg auszuführen.
  • Konfigurieren und Ausführen von Tests auf LambDatest: Erforschen Sie die Verwendung von LambDatest -Cloud -Selenium -Gitter zum Ausführen von Tests aus der Ferne und ermöglichen Sie den Zugriff auf mehrere Browser -Versionen und Betriebssysteme ohne lokale Infrastruktur.
  • Praktische Testszenarien handhaben: Gewinnen Sie Einblicke zum Schreiben von Selenium-Skripten, um Szenarien wie Pop-ups, dynamische Elemente und AJAX-Aufrufe mit expliziten Waiten und anderen Selenium-Webdriver-Techniken zu verarbeiten.
  • .
  • Tests mit paralleler Ausführung optimieren: Nutzen Sie parallele Tests auf Plattformen wie LambDatest, um die gesamte Testausführungszeit zu minimieren, sodass weitere Tests gleichzeitig ausgeführt werden können.

Komponenten der Seleniumsuite

unten finden Sie die Kernkomponenten der Selenium -Testsuite:

  • Selenium Integrierte Entwicklungsumgebung (IDE)
  • Selenium Fernbedienung (RC)
  • selenium webdriver
  • Selengitter

Schauen wir uns diese Komponenten nun im Detail an, in diesem Selenium WebDriver -Tutorial.

Selenium Integrierte Entwicklungsumgebung (IDE)

selenium ide ist ein einfaches Firefox -Plugin und wird zum Aufnehmen und Wiedergabe von Skripten verwendet. Die Selen -IDE kann jedoch nur zum Schreiben von Automatisierungsskripten zum automatischen Testen einfacher Anwendungsfälle verwendet werden. Selenium IDE unterstützt keine bedingten Aussagen, Ausnahmehandhabung, Schleifen, Screenshot -Erfassung usw. Für die Automatisierung komplexer Anwendungsfälle bevorzugt die Mehrheit der Entwickler und Tester, sich für Skripttests anstelle von Aufzeichnungen und Wiederholungstests zu entscheiden. Die Selenium -Testsuite besteht aus Selenium Fernbedienung (RC) oder Selenium Webdriver.

selenium ide ist für verschiedene Betriebssysteme verfügbar, nämlich Windows, Linux, Mac OS usw. Selenium IDE für Firefox kann hier heruntergeladen werden.

Selenium Fernbedienung (RC)

Für das Testen komplexer Szenarien kann die Selenium -Fernbedienung (RC) verwendet werden. Es basiert auf dem Client-Server-Modell, mit dem Tests auf dem Browser ausgeführt werden können, der vom Server gesteuert wird. Es gibt Kundenbibliotheken in verschiedenen Programmiersprachen, die es Entwicklern erleichtern, effektive Testfälle in einer Programmiersprache zu schreiben, in der sie sich wohl fühlen und mit Fachwissen verfügen. Seit Version 2.25.0 hat RC Unterstützung für Java, C#, Python, Perl, Ruby usw.

Selenium Server ist die Kernkomponente des Selenium RC. Einige der Kernmerkmale/Verantwortlichkeiten des Selenium RC sind unten:

  • enthält das Kern -Selen -Framework und ist hauptsächlich dafür verantwortlich, dasselbe in den Browser zu injizieren.
  • Das Client -Programm sendet Befehle an den RC, die dann vom Server interpretiert und dann an den Browser gesendet werden.
  • Nach der Ausführung werden die Ergebnisse an den Client zurückgesandt.
  • Der Client und Server kommunizieren über den normalen Mechanismus von HTTP -Get und Posts.

Wie bereits erwähnt, unterstützt das Selen RC verschiedene Browser, im Gegensatz zu Selen IDE, die nur für Mozilla Firefox erhältlich ist. Der Nachteil von Selenr. Vor der Ausführung der Tests mit Selenium RC sollte eine Instanz des Selenium RC -Servers manuell aufgerufen werden, und diese Instanz sollte während Ihres gesamten Testzyklus ausgeführt werden.

selenium webdriver

Wir wissen, dass Selenium ide GUI basiert, wobei Selenium RC ein eigenständiges Java -Programm ist, mit dem Sie HTML -Testsuiten ausführen können. Das Selen -Webdriver -Framework wird im Vergleich zu Selenium ID & Selen RC häufiger eingesetzt. Im Gegensatz zu Selenium RC, das auf dem Client-Server-Modell basiert, wird Selenium WebDriver Framework über einen Browser-spezifischen Treiber implementiert, z. Jeder Browser hat seine entsprechende Webdriver -Anwendung, auf der die Automatisierungstests durchgeführt werden.

selenium webdriver kommuniziert direkt mit dem browser und erfordert daher keine separate Komponente wie den selenium server. Es unterstützt Top -Programmiersprachen, die für einen Softwaretester hilfreich sind, nämlich C#, Ruby, Java, Python, Perl usw. Bevor Sie in diesem Selenium -Webdriver -Tutorial fortfahren, stellen Sie sicher durchgeführt. Sie können Selenium Webdriver aus den unten genannten Links herunterladen:

  • Firefox
  • Chrom
  • Internet Explorer
  • Microsoft Edge

Selengitter

serielle Tests sind in Ordnung, während der Code getestet wird, der auf einige Browser, Betriebssysteme oder Geräte beschränkt ist. Die Methodik stockt jedoch, sobald das Testen in einer Umgebung mit mehreren Kombinationen durchgeführt werden muss. Hier kann parallele Tests äußerst nützlich sein, da es den gesamten Testprozess beschleunigen kann. Durch parallele Tests können Sie gleichzeitig einen ähnlichen Testfall über verschiedene Testkonfigurationen hinweg durchführen. Sie können auch gleichzeitig verschiedene Testfälle im selben Browser ausführen. Parallele Tests haben noch viel mehr, aber das kann unseren Fokus von Selenium Webdriver abweichen.

Zurück zu den Grundlagen: Selenium Grid wird hauptsächlich für parallele Tests verwendet, da es gleichzeitig Tests auf verschiedenen Maschinen gegen verschiedene Browser und Betriebssysteme ausführt. Es erledigt den Job in Verbindung mit Selen RC. Ein Beispiel, das die Verwendung von Seleniumnetz zeigt, ist unten:

<span>from selenium import webdriver
</span><span>from selenium.webdriver.common.keys import Keys
</span>
desired_cap <span>= {
</span><span>'platform' : 'win10',
</span><span>'browserName' : 'chrome',
</span><span>'version' :  "67.0",
</span><span>}
</span>
url <span>= "https://username:acsessToken@{LMABDA GRID URL}/wd/hub"
</span>
driver <span>= webdriver.Remote(
</span>    desired_capabilities<span>=desired_cap,
</span>    command_executor<span>= url
</span><span>) 
</span>
driver<span>.implicitly_wait(1)
</span>driver<span>.get("http://www.google.com/")
</span>driver<span>.quit()
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Selenium WebDriver Architecture

schauen Sie sich die Hauptblöcke an, aus denen die Selenium WebDriver Architecture besteht:

  • selenium client bibliotheken
  • JSON Wire Protocol
  • Browser -Treiber
  • Browser

untersuchen wir jede Komponente ausführlicher.

selenium client bibliotheken

Wie bereits erwähnt, können Entwickler Selenium verwenden, um Testcode in verschiedenen Sprachen wie C#, Java, Python, Perl usw. zu schreiben. Wenn Sie beispielsweise Code in Python schreiben, benötigen Sie Python -Client -Bibliotheken. Selenium Client -Treiber für verschiedene Programmiersprachen können von hier heruntergeladen werden.

JSON Wire Protocol

JSON (JavaScript -Objektnotation) Drahtprotokoll erleichtert die Datenübertragung zwischen Client und Server. Es ist die restliche API (Repräsentationsstatusübertragung). Jeder Browser hat seinen eigenen Browser -Treiber.

Browser -Treiber

Browserfahrer wird hauptsächlich zur Kommunikation mit den Browsern verwendet. Da die interne Logik des Browsers und seiner Funktionalität nicht aufgedeckt wird, stellt der Browser -Treiber die erforderliche Schicht der „Kapselung“ sicher, um die Details zur Ausführungsebene abzubauen. Jeder Browser hat seinen entsprechenden Browser -Treiber.

Browser

Da Browser -Treiber für beliebte Browser wie Chrome, Firefox, Internet Explorer, Safari und Microsoft Edge verfügbar sind, können Sie eine von ihnen für die Durchführung von Cross -Browser -Tests verwenden. Es ist zu beachten, dass Sie keine Cross -Browser -Tests einer Website in einem Browser durchführen können, dessen Browsertreiber nicht öffentlich verfügbar ist.

So verwenden Sie Selenium Webdriver für Cross -Browser -Tests

lambDatest ist jetzt mit einem Selenraster vor dem Wolken

lebt

lambDatest bietet ein Selen-Gitter vor dem Wolken, mit dem Sie Ihren Automatisierungstestprozess schnell verfolgen können. Das Selen -Netz bietet mehr als 2000 reale Browser und Browserversionen, die auf zahlreichen Betriebssystemen ausgeführt werden. Sie können parallele Tests mit LambDatest Selenium Grid durchführen, ohne sich Gedanken darüber zu machen, dass Sie eine schwere Infrastruktur auf Ihrer lokalen Maschine installieren. Außerdem erhalten Sie eine Vielzahl von Browsern, um Ihre Testabdeckung zu maximieren.

Anzahl paralleler Sitzungen, die Sie ausführen können, hängt vollständig von den gleichzeitigen Sitzungen ab, für die Sie sich entschieden haben. Parallele Tests können Ihnen helfen, Ihre Testzyklen drastisch abzuschneiden. Angenommen, Sie haben eine Testsuite, die 60 Minuten ohne parallele Tests dauert. Wenn Sie nun 2 Parurals haben, können Sie 2 Tests gleichzeitig ausführen und Ihre Gesamttestzeit auf 30 Minuten abschneiden. In ähnlicher Weise fällt die gesamte Testzeit weiter bis zu 20 Minuten nach, wenn Sie 3 Genauigkeit haben. Verwenden Sie den LambDatest -Concurrency -Rechner, um zu berechnen, wie viele gleichzeitige Sitzungen Sie möglicherweise gemäß Ihrer Testsuite benötigen.

selenium webdriver in Aktion

Jetzt, da Sie sich der Grundlagen von Selen- und Browser -Treibern kennen, sehen wir uns ein einfaches Webdriver -Skript an. Bevor wir uns das Beispiel ansehen, stellen Sie bitte sicher, dass Sie über die Programmierumgebung verfügen (wir verwenden Eclipse mit allen vom Eclipse -Marktplatz heruntergeladenen Paketen). Das Selenium -Plugin für Eclipse kann hier heruntergeladen werden. Der Beispielcode wurde in der Python -Sprache geschrieben, aber Sie können den Testcode in C#, Java, Perl, Ruby usw. schreiben

Firefox WebDriver Beispiel

Da der Testcode mit dem Browser (Chrome, Firefox, Internet Explorer usw.) kommuniziert wird, stellen Sie bitte sicher, dass die entsprechende Client -Bibliothek/das entsprechende Client -Bibliothek/das Webdriver in Ihrem Computer installiert ist. Bitte beachten Sie die Abschnittsbrowser -Treiber, wie Sie den entsprechenden Webdriver herunterladen können.

unten ist ein Beispielcode, der Selenium, Firefox WebDriver verwendet, um eine Webseite zu öffnen:
<span>from selenium import webdriver
</span><span>from selenium.webdriver.common.keys import Keys
</span>
desired_cap <span>= {
</span><span>'platform' : 'win10',
</span><span>'browserName' : 'chrome',
</span><span>'version' :  "67.0",
</span><span>}
</span>
url <span>= "https://username:acsessToken@{LMABDA GRID URL}/wd/hub"
</span>
driver <span>= webdriver.Remote(
</span>    desired_capabilities<span>=desired_cap,
</span>    command_executor<span>= url
</span><span>) 
</span>
driver<span>.implicitly_wait(1)
</span>driver<span>.get("http://www.google.com/")
</span>driver<span>.quit()
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Lassen Sie uns durch den Code gehen. Bevor wir eine Aktion ausführen, werden alle erforderlichen Module unter Verwendung der Anweisung " importieren" [Zeilen 2 ~ 4] importiert. Im Testcode verwenden wir den Firefox WebDriver, da die Tests gegen den Firefox -Browser durchgeführt werden [Zeile 7]. Im Code ist FF_Driver der Webdriver -Handle, der zur Durchführung einer Interaktion mit dem Firefox -Browser verwendet wird. Wenn Sie den Webdriver nicht installieren lassen oder versuchen, einen Browser zu verwenden, für den es keine Unterstützung gibt (über Webdriver), würde dies den folgenden Fehler geben:

selenium.common.exceptions.webdriveRexception: Nachricht: 'operAdriver' ausführbares muss auf dem Pfad sein.

Die Fehlermeldung wurde angezeigt, als wir versuchten, den Webdriver für den Opera -Browser zu laden (ohne den auf dem Computer installierten Webdriver). Um den Fehler zu entfernen, sollten Sie den Webdriver für die Opera installieren.

Sobald alle Operationen im Browser abgeschlossen sind, wird ff_driver

Um den Code auszuführen, können Sie Strg F9 in Eclipse IDE aufrufen oder den Code mithilfe von Python -Befehlszeilenoptionen kompilieren:

So verwenden Sie Selenium Webdriver für Cross -Browser -Tests Chrome WebDriver Beispiel

Der vorherige Abschnitt in unserem Tutorial von Selen WebDriver haben wir den Firefox WebDriver verwendet. In diesem Abschnitt betrachten wir die Änderungen, die erforderlich sind, falls Sie den Chrome -Browser zum Testen verwenden. Sie sollten sicherstellen, dass der eigenständige Chromedriver -binäre (das sich von dem Chrombrowser -Binary unterscheidet) auf dem richtigen Pfad erhältlich oder als Teil des Webdrivers.chrome.Driver -Umgebungsvariable vorhanden ist. Wenn Sie Windows verwenden, müssen Sie den Chrome WebDriver von hier zuerst herunterladen. Fügen Sie chromedriver.exe an dem Ort ein, an dem Sie Python installiert haben (in unserem Fall war es der Standardinstallationspfad, d. H. C: Python27Scripts). Sie müssen den entsprechenden Webdriver [Zeile 8] laden und der Rest des Codes bleibt gleich. Im Folgenden finden Sie das Code -Snippet mit der Änderung (für den Chrome WebDriver erforderlich) in einer anderen Farbe:

<span>from selenium import webdriver
</span><span>from selenium.webdriver.common.keys import Keys
</span>
desired_cap <span>= {
</span><span>'platform' : 'win10',
</span><span>'browserName' : 'chrome',
</span><span>'version' :  "67.0",
</span><span>}
</span>
url <span>= "https://username:acsessToken@{LMABDA GRID URL}/wd/hub"
</span>
driver <span>= webdriver.Remote(
</span>    desired_capabilities<span>=desired_cap,
</span>    command_executor<span>= url
</span><span>) 
</span>
driver<span>.implicitly_wait(1)
</span>driver<span>.get("http://www.google.com/")
</span>driver<span>.quit()
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Internet Explorer Webdriver Beispiel

Bisher haben wir in unserem Selenium WebDriver -Tutorial Cross -Browser -Test mit dem Firefox WebDriver & Chrome WebDriver demonstriert. In diesem Abschnitt betrachten wir die Änderungen, die erforderlich sind, falls Sie den Chrome -Browser zum Testen verwenden. Sie sollten den richtigen Internet Explorer WebDriver (32 Bit/64 -Bit) von hier oder hier herunterladen. Fügen Sie InternetExplorerDriver.exe an dem Ort ein, an dem Sie Python installiert haben (in unserem Fall war es der Standardinstallationspfad, d. H. C: Python27Scripts) oder einen anderen Ort Ihrer Wahl. Wenn Sie den InternetExplorer -Webdriver in den Pfad kopieren, in dem Python -ausführbare Datei vorhanden ist, müssen Sie den „absoluten Pfad“ beim Laden des Web -Treibers nicht zu schweigen von [Zeile 7]. Im anderen Fall müssen Sie den absoluten Pfad angeben [Zeile 9]. Im Folgenden finden Sie das Code -Snippet mit der Änderung (für den IE -Webabrender erforderlich), der in einer anderen Farbe hervorgehoben wird:

<span># Import the necessary modules for development
</span><span>import time
</span><span>import unit test
</span><span>from selenium import web driver
</span>
<span># Invoke a new Firefox Instance
</span>ff_driver <span>= webdriver.Firefox()
</span>
<span># Blocking wait of 30 seconds in order to locate the element
</span>ff_driver<span>.implicitly_wait(30)
</span>ff_driver<span>.maximize_window()
</span>
<span># Open the required page
</span>ff_driver<span>.get("http://www.lambdatest.com")
</span>
<span># Sleep for 10 seconds in order to see the results
</span>time<span>.sleep(10)
</span>
<span># Close the Browser instance
</span>ff_driver<span>.close()
</span>
Nach dem Login kopieren
Nach dem Login kopieren

Endlich werden wir in unserem Selenium WebDriver -Tutorial ein weiteres Beispiel ansehen, in dem wir das ActionChains -Modul verwenden, mit dem Interaktionen mit niedrigem Niveau wie Mausbewegungen, Button -Bewegungen, Kontextmenü -Interaktionen usw. automatisiert werden, um ein Robust zu gewährleisten UI -Design. Weitere Details zu ActionChains finden Sie hier.

<span># Import the necessary modules for development
</span><span>import time
</span><span>import unit test
</span><span>from selenium import web driver
</span>
<span># Invoke a new Chrome Instance
</span>ff_driver <span>= webdriver.Chrome()
</span>
<span># Blocking wait of 30 seconds in order to locate the element
</span>ff_driver<span>.implicitly_wait(30)
</span>ff_driver<span>.maximize_window()
</span>
<span># Open the required page
</span>ff_driver<span>.get("http://www.lambdatest.com")
</span>
<span># Sleep for 10 seconds in order to see the results
</span>time<span>.sleep(10)
</span>
<span># Close the Browser instance
</span>ff_driver<span>.close()
</span>
Nach dem Login kopieren

Wie im obigen Beispielcode zu sehen, behalten wir den Code für das Erstellen der Firefox -Webdriver -Instanz [Zeilen 9 ~ 16]. Es gibt ein paar neue Module, die importiert werden - ActionChains und Schlüssel. Sobald die gewünschte Webseite, d. H. https://www.lambdatest.com/, vom Browser geöffnet wird, wird eine Suchoperation durchgeführt, indem Sie sich den Linktext ansehen (mit der Methode find_element_by_link_text). In unserem Beispiel ist der Linktext, der auf der Webseite durchsucht wird, „Unterstützung“ [Zeilen 20 ~ 22].

Sobald die Suchkriterien auftreten, wird eine (Strg -Klick) Operation durchgeführt, wodurch diese Seite in einer "neuen Registerkarte" [Zeilen 26 ~ 30] geöffnet wird. Das ActionChains -Modul wird zur Durchführung dieser Operation verwendet. Die Ausgabe ist unten:

So verwenden Sie Selenium Webdriver für Cross -Browser -Tests

Wir haben ActionChains verwendet, da es für das Beispiel geeignet war, das wir oben präsentiert haben. Hier können Sie sich die verschiedenen Module unter dem Selenium -Webdriver -Modul (für Python) ansehen. Obwohl wir die Python -Sprache zur Implementierung verwendet haben, können Sie die Programmiersprache (C#, Java, Perl, Ruby, Ruby, PHP) Ihrer Wahl verwenden.

lokaler Webdriver-nicht so skalierbarer Ansatz

Tests mit dem lokalen Webdriver können verwendet werden, falls Sie Ihre Website auf einer begrenzten Anzahl von Kombination „Browser -Betriebssystemgeräte“ testen möchten. Der Ansatz kann jedoch ins Stocken geraten, wenn die Anzahl der Kombinationen mehr ist. Sie können für jede Kombination kein lokales Setup haben, da dies kein skalierbarer Ansatz ist und sich möglicherweise auch als sehr teuer herausstellt.

Eine bessere Lösung wäre, die Funktionen einer Plattform wie LambDatest zu nutzen, auf der Sie Cross-Browser-Tests in der Cloud durchführen können. Mit LambDatest können Sie Ihre Website über 2000 verschiedene Browser, Betriebssysteme und Gerätekonfigurationen überprüfen. Um loszulegen, müssen Sie ein Konto auf LambDatest erstellen. Da Sie Remote -Webdriver (mit Selenium Grid on LambDatest) zum Testen Ihrer Webanwendung verwenden würden, sollten Sie einen Hinweis zum Benutzernamen und zugreifen und über Ihr LambDatest -Profil zugreifen.

Selenium -Skript mit dem Remote -Webdriver mit LambDatest

ausführen

Jetzt, da Sie über die Verwendung von Selenium WebDriver und die potenziellen Mängel bei der Verwendung dieses Ansatzes wissen, befassen wir uns, wie Sie Ihre lokale Webdriver -Implementierung auf Remote -Webdriver portieren können. Die Kernprinzipien des Remote -Webdrivers ähneln dem lokalen Webdriver, außer dass der Remote -Webdriver -Code möglicherweise nicht auf demselben Computer ausgeführt wird, aus dem er initiiert wird. Remote WebDriver basiert auf dem Client-Server-Modell, bei dem der Server ein einfaches Java-Servlet ist, das auf jedem modernen JEE-App-Server gehostet wird. Der Hub/Server lädt die ausgeführten Tests. Es erhält Testanfragen von verschiedenen Kunden und basiert auf den Anforderungen (als gewünschte Funktionen bezeichnet) die Anfrage an den Best-Matching-/Best-Fit-Client.

Wenn Ihr Test beispielsweise auf Ubuntu OS -Chrome ausgeführt werden muss, würde der Server/die Hub die Funktionen der beim Server registrierten Clients/Knoten durchsuchen und die Anforderung an den Client mit übereinstimmenden Funktionen ablenken. Es kann nur einen Server und die Anzahl von Clients in der Selenium -Gitterarchitektur geben. Detailliertere Informationen zur Remote -Treiber -API können auf anderen Blogs auf der LambDatest -Website erhalten werden.

Sobald Sie sich bei LambDatest angemeldet haben, sollten Sie die von den Knoten erforderlichen Funktionen erstellen, indem Sie den Generator von LambDatest -Funktionen besuchen. Wählen Sie Ihre bevorzugte Programmiersprache (in unserem Fall ist es Python) und die entsprechende OS/Browser -Kombination. Sie können die Funktionen für Screenshot- und Videoaufzeichnungen aktivieren und gleichzeitig die Funktionen festlegen. Wie unten gezeigt, ist unsere Anforderung, dass der Test auf Firefox (Version 64.0) ausgeführt wird, das auf einem Windows 10 -Computer installiert ist. Die Fähigkeiten für die Anforderung sind unten:
<span>from selenium import webdriver
</span><span>from selenium.webdriver.common.keys import Keys
</span>
desired_cap <span>= {
</span><span>'platform' : 'win10',
</span><span>'browserName' : 'chrome',
</span><span>'version' :  "67.0",
</span><span>}
</span>
url <span>= "https://username:acsessToken@{LMABDA GRID URL}/wd/hub"
</span>
driver <span>= webdriver.Remote(
</span>    desired_capabilities<span>=desired_cap,
</span>    command_executor<span>= url
</span><span>) 
</span>
driver<span>.implicitly_wait(1)
</span>driver<span>.get("http://www.google.com/")
</span>driver<span>.quit()
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

unten finden Sie den Screenshot aus LambDatest -Funktionen Generator:

So verwenden Sie Selenium Webdriver für Cross -Browser -Tests

Da wir das Selenium -Gitter auf dem LambDatest -Server verwenden würden, müssen wir unseren Code so ändern, dass er auf die Cloud -Infrastruktur zugreifen kann (auch als Remote -URL bezeichnet). Die Remote -URL ist unten dargestellt:
<span>from selenium import webdriver
</span><span>from selenium.webdriver.common.keys import Keys
</span>
desired_cap <span>= {
</span><span>'platform' : 'win10',
</span><span>'browserName' : 'chrome',
</span><span>'version' :  "67.0",
</span><span>}
</span>
url <span>= "https://username:acsessToken@{LMABDA GRID URL}/wd/hub"
</span>
driver <span>= webdriver.Remote(
</span>    desired_capabilities<span>=desired_cap,
</span>    command_executor<span>= url
</span><span>) 
</span>
driver<span>.implicitly_wait(1)
</span>driver<span>.get("http://www.google.com/")
</span>driver<span>.quit()
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

@hub.lambdatest.com/wd/Hub ist das Selen -Raster -Setup auf LambDatest, bei dem der Test ausgeführt wird. Für Benutzer-Authentifizierungszwecke wird der User_Name (verwendet zur Registrierung auf LambDatest) und App_Key (Access-gepfunden) an die Grid-URL angehängt. Die verkettete Zeichenfolge bildet die Remote_url. Nachdem Sie sich über die Remote -Webdriver -API und den Funktionsgenerator bewusst sind, portieren wir unser früheres Beispiel für diese Anforderungen.

parallel_test_example-1.py

<span># Import the necessary modules for development
</span><span>import time
</span><span>import unit test
</span><span>from selenium import web driver
</span>
<span># Invoke a new Firefox Instance
</span>ff_driver <span>= webdriver.Firefox()
</span>
<span># Blocking wait of 30 seconds in order to locate the element
</span>ff_driver<span>.implicitly_wait(30)
</span>ff_driver<span>.maximize_window()
</span>
<span># Open the required page
</span>ff_driver<span>.get("http://www.lambdatest.com")
</span>
<span># Sleep for 10 seconds in order to see the results
</span>time<span>.sleep(10)
</span>
<span># Close the Browser instance
</span>ff_driver<span>.close()
</span>
Nach dem Login kopieren
Nach dem Login kopieren

Lassen Sie uns eine Code -Vorgehensweise durchführen, insbesondere die Hauptänderungen:

  • Der Benutzername und AccessToken sind an die Gridurl beigefügt. Die Kombination bildet die Remote -URL, auf der die Testfallausführung durchgeführt wird.
  • Die API von WebDriver.remote wird anstelle einer lokalen Webdriver -API verwendet. Die Remote -Webdriver -API enthält zwei Argumente - command_executor: Grid -Setup, auf der der Test durchgeführt wird, und gewünscht_Capabilities: Die gewünschten Funktionen/Anforderungen des Knotens. Basierend auf diesen Funktionen wird der geeignete Knoten ausgewählt, auf dem der Code ausgeführt wird.

Um den Status des Tests zu überprüfen, müssen Sie Ihr LambDatest Dashboard besuchen. Sie können den Test über seinen Build-Namen suchen, der bei der Bildung der Funktionen verwendet wird. Ein Screenshot des obigen Tests, der auf dem LambDatest -Raster ausgeführt wird, ist unten.

So verwenden Sie Selenium Webdriver für Cross -Browser -Tests

Es gibt verschiedene Optionen auf dem Ausgabebereich, die beim Debuggen instrumental sein können. Einige der Hauptoptionen sind unten.

  • Ausnahme - Listet die Ausnahmen auf, die während der Ausführung des Testcode auftreten.
  • Protokolle - Auf dieser Registerkarte werden die Seleniumprotokolle sowie die Konsolenprotokolle angezeigt. Es kann sehr praktisch sein, Ihren Code zu debuggen.
  • Metadaten - Es enthält detaillierte Informationen über die Testumgebung, in der die Tests durchgeführt wurden. In unserem Fall wird der Test auf Firefox 64.0 durchgeführt, das auf Windows 10 -Computer installiert ist. Sie können sogar Details zur Browserkonfiguration erhalten.

So verwenden Sie Selenium Webdriver für Cross -Browser -Tests

Parallele Tests - Beschleunigen Sie Ihre Testzyklen

Eine Funktion auf LambDatest, die Ihren gesamten Testprozess beschleunigen kann, ist parallele Tests. Basierend auf dem Preismodell, für das Sie sich entscheiden, können Sie gleichzeitig Tests ausführen, damit die gesamte Testausführungszeit verkürzt wird. In unserem Fall können wir zwei gleichzeitige Sitzungen haben. Je gleichzeitiger Sitzungen, desto kürzer die Gesamtausführungszeit.

So verwenden Sie Selenium Webdriver für Cross -Browser -Tests

Um das Merkmal der Parallelisierung zu demonstrieren, führen wir zwei Testausführungen auf gleichzeitige Weise durch. Zusammen mit dem vorherigen Beispiel (parallel_test_example-1.py) führen wir den zweiten Test (parallel_test_example-2.py) gleichzeitig mit.

gleichzeitig.

parallel_test_example-2.py

<span>from selenium import webdriver
</span><span>from selenium.webdriver.common.keys import Keys
</span>
desired_cap <span>= {
</span><span>'platform' : 'win10',
</span><span>'browserName' : 'chrome',
</span><span>'version' :  "67.0",
</span><span>}
</span>
url <span>= "https://username:acsessToken@{LMABDA GRID URL}/wd/hub"
</span>
driver <span>= webdriver.Remote(
</span>    desired_capabilities<span>=desired_cap,
</span>    command_executor<span>= url
</span><span>) 
</span>
driver<span>.implicitly_wait(1)
</span>driver<span>.get("http://www.google.com/")
</span>driver<span>.quit()
</span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Führen Sie die beiden Tests parallel an zwei verschiedenen Terminals durch, indem Sie den Befehl python aufrufen.

So verwenden Sie Selenium Webdriver für Cross -Browser -Tests

unten finden Sie den Screenshot aus LambDatest -Automatisierungsprotokollen, bei dem Sie feststellen können, dass zwei Tests parallel durchgeführt werden.

So verwenden Sie Selenium Webdriver für Cross -Browser -Tests

Schlussfolgerung

Es gibt eine Reihe von Vorteilen für die Verwendung der Remote -Webdriver -API für eine Cloud -Infrastruktur wie LambDatest, da sie den gesamten Testprozess beschleunigt. Es ist auch ein sehr skalierbarer Ansatz. Durch die Verwendung von Parallelität, d. H. Parallelisierung, können Sie die Gesamtzeit, die für Automatisierungstests aufgewendet werden, weiter verkürzt.

häufig gestellte Fragen (FAQs) auf Selenium Webdriver für Cross-Browser-Test

Was sind die Voraussetzungen für die Einrichtung von Selenium-Webdriver für Cross-Browser-Tests? Zunächst müssen Sie ein grundlegendes Verständnis der Programmiersprache haben, die Sie zum Schreiben von Testskripten verwenden. Selenium unterstützt mehrere Sprachen wie Java, Python, C#, Ruby usw. Zweitens müssen Sie die Selenium WebDriver Library für die ausgewählte Sprache installieren. Drittens müssen Sie die Browser -Treiber für die Browser installieren, auf denen Sie testen möchten. Zuletzt müssen Sie ein Test -Framework wie TestNG oder JUNIT für Java oder unittest oder pyTest für Python haben, um Ihre Testfälle zu verwalten. 🎜> Dynamische Webelemente können im Selenium -Webdriver eine Herausforderung sein. Sie können jedoch verschiedene Strategien anwenden, um mit ihnen umzugehen. Eine gemeinsame Methode ist die Verwendung von Seleniums expliziten Wartefunktionen. Auf diese Weise kann Ihr Skript für eine bestimmte Zeitspanne innehalten, bis ein bestimmter Zustand erfüllt ist, z. B. das Vorhandensein des Elements im DOM. Eine andere Methode besteht darin In Selenium WebDriver können Sie ein Test -Framework verwenden, das die parallele Ausführung wie TestNG oder PyTest unterstützt. In TestNG können Sie das parallele Attribut in der Suite-Tag in Ihrer Datei testng.xml auf Methoden oder Tests festlegen und das Attribut "Thread-Count" für die Anzahl der Threads angeben, die Sie verwenden möchten. In PyTest können Sie das PyTest -XDist -Plugin verwenden und die Anzahl der Prozesse in der Befehlszeile mit der Option -n angeben.

Wie kann ich Popup-Fenster oder Warnungen mit Selenium Webdriver? Sie können mit der Methode SwitchTo (). Alert () zur Warnung wechseln und dann die Methoden ACCEPT (), DELDE (), getText () oder sendkeys () verwenden, um mit der Warnung zu interagieren. Denken Sie daran, nach dem Umgang mit der Warnung zum Hauptfenster zurückzukehren. Sie können die GetCreenShotas () -Methode verwenden, um einen Screenshot aufzunehmen und in einer Datei zu speichern. Sie können diese Methode im Catch-Block einer Try-Catch-Anweisung oder in der Methode nach dem Test Ihres Test-Frameworks aufrufen, um Screenshots von Testfehlern zu erfassen.

selenium webdriver bietet die ausgewählte Klasse für die Interaktion mit Dropdown -Menüs. Sie können ein Objekt der Auswahlklasse erstellen, indem Sie das Dropdown -Element an seinen Konstruktor übergeben. Anschließend können Sie die SelectByVisibletext (), SelectByValue () oder SelectByIndex () -Methoden verwenden, um eine Option auszuwählen. Sie können auch die Methode von GetOptions () verwenden, um alle Optionen in der Dropdown -Liste zu erhalten. ) .Frame () Methode. Sie können den Index, den Namen oder die ID oder das Iframe -Element an diese Methode übergeben. Denken Sie nach dem Interaktion mit dem Iframe daran, mit der Methode SwitchTo (). StandardContent () zum Hauptfenster zurückzukehren. mit Keksen zu interagieren. Sie können die Methode addoCookie () verwenden, um ein Cookie hinzuzufügen, die Methode von GetCookIenamed (), um ein bestimmtes Cookie, die GetCookies () -Methode zu erhalten, um alle Cookies zu erhalten Cookies löschen. Sie können explizites Warten mit Erwartungspunkten verwenden, um zu warten, bis der Ajax -Anruf abgeschlossen ist und die Daten geladen werden. Klasse für Tastatur- und Mausereignisse. Sie können ein Objekt der Aktionsklasse erstellen und ihre Methoden wie Click (), DouBleClick (), contextclick (), DragandDrop (), KeyDown (), KeyUp () usw. verwenden, um verschiedene Tastatur- und Mausaktionen zu simulieren.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Selenium Webdriver für Cross -Browser -Tests. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage