implementation our first webdriver script selenium webdriver tutorial 10
In den beiden vorherigen Tutorials haben wir Sie mit der grundlegenden Architektur und vertraut gemacht Funktionen von WebDriver und das Infrastruktur erforderlich, um mit Selenium WebDriver beginnen zu können . Angenommen, Sie haben alle das System mit allen erforderlichen Dienstprogrammen und Paketen eingerichtet. Wir werden mit der Implementierung unseres ersten WebDriver-Testskripts weiter vorankommen.
Daher mit der Konsequenz vorwärts bewegen Selenium WebDriver Tutorial würden wir ein WebDriver-Skript erstellen. Wir würden auch das Licht auf das grundlegende und allgemein verwendete streuen WebDriver-Befehle . Wir würden auch etwas über das lernen Lokalisierungsstrategien von UI-Elementen und ihre Aufnahme in die Testskripte. Wir würden auch Get Commands im Detail studieren.
Was du lernen wirst:
- Skript-Erstellung
- Code-exemplarische Vorgehensweise
- Test Ausführung
- Suchen von Webelementen
- Locator-Typen und ihre Syntax
- Fazit
- Literatur-Empfehlungen
Skript-Erstellung
Für die Skripterstellung verwenden wir das im vorherigen Lernprogramm erstellte Projekt 'Learning_Selenium' und 'gmail.com' als zu testende Anwendung (AUT).
Szenario:
- Starten Sie den Browser und öffnen Sie 'Gmail.com'.
- Überprüfen Sie den Titel der Seite und drucken Sie das Überprüfungsergebnis aus.
- Geben Sie den Benutzernamen und das Passwort ein.
- Klicken Sie auf die Schaltfläche Anmelden.
- Schließen Sie den Webbrowser.
Schritt 1: Erstellen Sie im Projekt 'Learning_Selenium' eine neue Java-Klasse mit dem Namen 'Gmail_Login'.
Schritt 2: Kopieren Sie den folgenden Code und fügen Sie ihn in die Klasse 'Gmail_Login.java' ein.
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class Gmail_Login { /** * @param args */ public static void main(String() args) { // objects and variables instantiation WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; // launch the firefox browser and open the application url driver.get(appUrl); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); // compare the expected title of the page with the actual title of the page and print the result if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); } // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); System.out.println('Test script executed successfully.'); // terminate the program System.exit(0); } }
Der obige Code entspricht dem zuvor dargestellten Textszenario.
Code-exemplarische Vorgehensweise
Importanweisungen:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.By;
Vor dem eigentlichen Scripting müssen wir die oben genannten Pakete importieren:
importieren org.openqa.selenium.WebDriver - Verweist auf die WebDriver-Oberfläche, die zum Instanziieren eines neuen Webbrowsers erforderlich ist.
importieren org.openqa.selenium.firefox.FirefoxDriver - Verweist auf die FirefoxDriver-Klasse, die erforderlich ist, um einen Firefox-spezifischen Treiber auf der über die WebDriver-Schnittstelle instanziierten Browserinstanz zu instanziieren.
importieren org.openqa.selenium.WebElement - Verweise auf die WebElement-Klasse, die zum Instanziieren eines neuen Webelements erforderlich ist.
importieren org.openqa.selenium.By - Verweise auf die By-Klasse, für die ein Locator-Typ aufgerufen wird.
Wenn unser Projekt wächst, ist es offensichtlich und logisch, dass wir möglicherweise mehrere andere Pakete für komplexere und eindeutigere Funktionen wie Excel-Manipulationen, Datenbankkonnektivität, Protokollierung, Zusicherungen usw. einführen müssen.
Wie kann man ein Array in Java umkehren?
Objektinstanziierung
WebDriver-Treiber = neuer FirefoxDriver ();
Wir erstellen eine Referenzvariable für die WebDriver-Schnittstelle und instanziieren sie mithilfe der FirefoxDriver-Klasse. Ein Standard-Firefox-Profil wird gestartet. Dies bedeutet, dass keine Erweiterungen und Plugins mit der Firefox-Instanz geladen werden und im abgesicherten Modus ausgeführt werden.
Starten des Webbrowsers
driver.get (appUrl);
ZU erhalten() Auf der WebDriver-Instanz wird eine Methode aufgerufen, um eine neue Webbrowser-Instanz zu starten. Die Zeichenfolgenfolge, die als Parameter an die übergeben wird erhalten() Die Methode leitet die gestartete Webbrowser-Instanz an die Anwendungs-URL weiter.
Browserfenster maximieren
driver.manage (). window (). maxim ();
Das maximieren() Diese Methode wird verwendet, um das Browserfenster zu maximieren, kurz nachdem es an die Anwendungs-URL weitergeleitet wurde.
Holen Sie sich den Seitentitel
driver.getTitle ();
Das getTitle () Methode wird verwendet, um den Titel der aktuellen Webseite abzurufen. Somit kann der abgerufene Titel in eine Zeichenfolgenvariable geladen werden.
Vergleich zwischen erwarteten und tatsächlichen Werten:
if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); }
Der obige Code verwendet die Java-Konstrukte der bedingten Anweisung, um den tatsächlichen Wert und den erwarteten Wert zu vergleichen. Basierend auf dem erhaltenen Ergebnis würde die Druckanweisung ausgeführt.
WebElement-Instanziierung
WebElement-Benutzername = driver.findElement (By.id ('Email'));
In der obigen Anweisung instanziieren wir die WebElement-Referenz mit Hilfe von 'Driver.findElement (By.id (' Email '))'. Daher kann der Benutzername verwendet werden, um jedes Mal, wenn wir eine Aktion ausführen möchten, auf das E-Mail-Textfeld auf der Benutzeroberfläche zu verweisen.
Befehl löschen
username.clear ();
Die Methode / der Befehl clear () wird verwendet, um den im Textfeld vorhandenen Wert zu löschen, falls vorhanden. Außerdem wird der Standardplatzhalterwert gelöscht.
sendKeys-Befehl
username.sendKeys („TestSelenium“);
Das sendKeys () Methode / Befehl wird verwendet, um den angegebenen Wert (in Klammern) in das Textfeld einzugeben / einzugeben. Beachten Sie, dass die sendKeys () Die Methode wird für das WebElement-Objekt aufgerufen, das mithilfe der dem UI-Element entsprechenden Elementeigenschaft instanziiert wurde.
Blasensortierfunktion c ++
Der obige Codeblock gibt die Zeichenfolge 'TestSelenium' in das Textfeld 'E-Mail' in der Google Mail-Anwendung ein.
sendKeys ist einer der am häufigsten verwendeten Befehle in den WebDriver-Skripten.
Klicken Sie auf Befehl
SignInButton.click ();
Mögen sendKeys (), klicken Sie auf () ist ein weiterer häufig verwendeter Befehl zur Interaktion mit den Webelementen. Klicken() Befehl / Methode wird verwendet, um auf das auf der Webseite vorhandene Webelement zu klicken.
Der obige Codeblock klickt auf die Schaltfläche 'Anmelden' in der Google Mail-Anwendung.
Anmerkungen:
- Im Gegensatz zur sendKeys () -Methode können click () -Methoden niemals parametrisiert werden.
- Durch Klicken auf ein Webelement wird manchmal eine neue Seite geladen. Um solche Fälle aufrechtzuerhalten, wird die click () -Methode so codiert, dass gewartet wird, bis die Seite geladen ist.
Schließen Sie den Webbrowser
driver.close ();
Mit close () wird das aktuelle Browserfenster geschlossen.
Beenden Sie das Java-Programm
System.exit (0);
Die Exit () -Methode beendet das Java-Programm mit Gewalt. Denken Sie daher daran, alle Browserinstanzen zu schließen, bevor Sie das Java-Programm beenden.
Test Ausführung
Das Testskript oder einfach das Java-Programm kann auf folgende Arten ausgeführt werden:
# 1. Unter der Menüleiste von Eclipse befindet sich ein Symbol zum Ausführen des Testskripts. Siehe folgende Abbildung.
Beachten Sie, dass nur die ausgewählte Klasse ausgeführt wird.
So entfernen Sie Elemente aus einem Java-Array
#zwei. Klicken Sie mit der rechten Maustaste auf eine beliebige Stelle innerhalb der Klasse im Editor, wählen Sie die Option 'Ausführen als' und klicken Sie auf 'Java-Anwendung'.
#3. Eine weitere Verknüpfung zum Ausführen des Testskripts ist - Drücken Sie Strg + F11.
Am Ende des Ausführungszyklus wird die Druckanweisung 'Testskript erfolgreich ausgeführt'. finden Sie in der Konsole.
Suchen von Webelementen
Webelemente in WebDriver können auf dieselbe Weise wie in den vorherigen Tutorials von Selenium IDE gefunden und überprüft werden. Selenium IDE und Firebug können verwendet werden, um das Webelement auf der GUI zu überprüfen. Es wird dringend empfohlen, Selenium IDE zu verwenden, um die Webelemente zu finden. Wenn das Webelement erfolgreich gefunden wurde, kopieren Sie den Zielwert und fügen Sie ihn in den WebDriver-Code ein. Die Arten von Locators und die Lokalisierungsstrategien sind bis auf die Syntax und ihre Anwendung ziemlich gleich.
In WebDriver werden Webelemente mithilfe der dynamischen Finder gefunden (findElement (By.locatorType („locator value“)).
Beispielcode:
driver.findElement (By.id ('Email'));
Locator-Typen und ihre Syntax
Locator-Typ | Syntax | Beschreibung |
---|---|---|
cssSelector | driver.findElement (By.cssSelector ('CSS-Auswahl')) | Suchen Sie nach dem Wert von der CSS-Selektor |
Ich würde | driver.findElement (By.id ('ID_of_Element')) | Suchen Sie nach dem Wert von das Attribut 'id' |
Klassenname | driver.findElement (By.className ('Class_of_Element')) | Suchen Sie nach dem Wert von das Attribut 'Klasse' |
Link Text | driver.findElement (By.linkText ('Text')) | Suchen Sie nach dem Wert von Text des Hyperlinks |
PartialLinkText | driver.findElement (By.partialLinkText ('PartialText')) | Suchen Sie nach dem Wert von Untertext des Hyperlinks |
Name | driver.findElement (Namentlich ('Name_of_Element')) | Suchen Sie nach dem Wert von Attribut 'Name' |
xpath | driver.findElement (By.xpath ('Xpath')) | Nach Wert suchen des xpath |
Verlinke den Namen | driver.findElement (By.tagName ('Eingabe')) | Suchen Sie nach dem Wert von seinen Tag-Namen |
Fazit
In diesem Tutorial haben wir ein Automatisierungsskript mit WebDriver und Java entwickelt. Wir haben auch die verschiedenen Komponenten besprochen, aus denen ein WebDriver-Skript besteht.
Hier sind die Kernpunkte dieses Selenium WebDriver-Tutorials:
- Vor dem eigentlichen Scripting müssen einige Pakete importiert werden, um ein WebDriver-Skript erstellen zu können.
- importieren openqa.selenium.By;
- importieren openqa.selenium.WebDriver;
- importieren openqa.selenium.WebElement;
- importieren openqa.selenium.firefox.FirefoxDriver;
- ZU erhalten() Methode zum Starten einer neuen Webbrowser-Instanz. Die als Parameter an die Methode get () übergebene Zeichenfolge leitet die gestartete Webbrowser-Instanz an die Anwendungs-URL weiter.
- Das maximieren() Methode wird verwendet, um das Browserfenster zu maximieren.
- Das klar() Methode wird verwendet, um den im Textfeld vorhandenen Wert zu löschen, falls vorhanden.
- Das sendKeys () Methode wird verwendet, um den angegebenen Wert in das Textfeld einzugeben.
- Klicken() Methode wird verwendet, um auf das auf der Webseite vorhandene Webelement zu klicken.
- In WebDriver können Webelemente mithilfe von dynamischen Suchern gefunden werden.
- Die folgenden Locator-Typen sind verfügbar:
- Ich würde
- Klassenname
- Name
- xpath
- cssSelector
- Link Text
- PartialLinkText
- Verlinke den Namen
Im nächsten Tutorial würden wir uns auf ein Framework konzentrieren, das Automatisierungstests unterstützt, die als TestNG bekannt sind. Wir hätten eine detaillierte Studie über die verschiedenen Arten der vom Framework bereitgestellten Anmerkungen.
Nächstes Tutorial Nr. 11 :: Bevor wir uns eingehend mit Frameworks befassen, werden wir Details zu JUnit sehen - einem Open-Source-Tool zum Testen von Einheiten. Die meisten Programmierer verwenden JUnit, da es einfach ist und keinen großen Aufwand zum Testen erfordert. Dieses Tutorial gibt einen Einblick in JUnit und seine Verwendung in Selenium-Skripten.
Eine Bemerkung für die Leser: Während sich unser nächstes Tutorial der Selenium-Reihe im Verarbeitungsmodus befindet, können Leser damit beginnen, ihre eigenen grundlegenden WebDriver-Skripte zu erstellen. Für weiterführende Skripte und Konzepte stehen in dieser Reihe verschiedene andere Selenium WebDriver-Tutorials zur Verfügung.
Lassen Sie uns in Kommentaren wissen, wenn Sie Probleme beim Erstellen oder Ausführen der WebDriver-Skripte haben.
Literatur-Empfehlungen
- Einführung in Selenium WebDriver - Selenium Tutorial # 8
- Cucumber Selenium Tutorial: Integration von Cucumber Java Selenium WebDriver
- WebDriver Gesamte Einrichtung und Installation mit Eclipse - Selenium Tutorial # 9
- Überprüfen Sie die Sichtbarkeit von Webelementen mithilfe verschiedener Arten von WebDriver-Befehlen - Selenium Tutorial # 14
- Effizientes Selenium-Scripting und Fehlerbehebungsszenarien - Selenium-Lernprogramm Nr. 27
- Umgang mit Warnungen / Popups in Selenium WebDriver - Selenium Tutorial # 16
- Debuggen von Selenium-Skripten mit Protokollen (Log4j Tutorial) - Selenium Tutorial # 26
- Einführung in JUnit Framework und seine Verwendung in Selenium Script - Selenium Tutorial # 11