Selenium Webdriver

Webtreiber Selenium

Wir brauchen automatisierte Testskripte in Selenium und einige Testwerkzeuge drumherum. Eine praktische und schnelle Anleitung zur Problemlösung für automatisierte Test-Webanwendungen mit Selenium WebDriver in C#. WebDriver-Rezepte in C#, Sekunde. Die weltweit größte Website für Selenium Webdriver Jobs. Kurze Einführung in Selenium WebDriver.

Selbsttreiber Tutorial 2: Wordpress Testautomation, Testframework optimieren

Weil wir in diesem zweiten Tutorium viel über Neuerungen und Änderungen in unserer Testautomation berichten, ist es für Sie als Anwender logisch, das vorherige Tutorium "Selenium webdriverTutorial 1" zu lesen und den Status des dort erstellten Selenium Java Projektes bis zum Ende zu erproben. Wir haben bereits im "Selenium Webdriver Tutorium 1" eine Grundlage für strukturiertes und wartbares Coding gelegt, aber wir haben immer noch "Code Smells" (hier gut erklärt) oder Optimierungsanforderungen, die uns in großen Testautomatisierungs-Projekten rasch auf die Beine kommen würden.

Wir beginnen ein weiteres Experiment in Eklipse, da sich das Aussehen des Selenium-Testframeworks fundamental geändert hat.

Objektorientiert erstellen wir nun eine eigene Benutzerklasse. Der neue Typ lautet: Stringbenutzername; String-Passwort; String-Rolle; Benutzername = "TestAdmin"; Passwort = "xxx"; Rolle = "Admin"; Rückgabe; Benutzername = "TestUser"; Passwort = " xxx"; Rolle = "Normal"; Rückgabe; Damit koppeln wir die Daten vom verbliebenen Coding, sowohl von der Testautomatisierungstechnologie als auch vom Anwendungsfall ab.

Eine Elementklasse sollte die für das jeweilige Objekt zu speichernden Informationen und auch die für das Objekt angebotenen Funktionalitäten haben. Sämtliche Bestandteile sind in einem Paket namens "Elemente" verpackt. Paket Bestandteile; importieren Sie org.openqa.selenium. Von; importieren Sie org.openqa.selenium. WebDriver; importieren Sie org.openqa.selenium. NetzElement; öffentliche Zeichenkette; öffentlicher Stringname; öffentlicher Zeichenkette xpath; öffentlicher Zeichenkette xpath; WebElement-Element = driver.findElement(By. id(id)); Rückgabeelement ; findElement(driver). sendKeys(text) ; findElement(driver).

clear (); Mit dieser Methode haben wir nun ein eigenes Eingabefeld für den Text festgelegt. ID, Namen und Pfad werden von uns gespeichert. Jetzt legen wir den Link und Button für unsere Selenium WordPress Testautomation fest. ý Paket Elemente; importieren Sie org.openqa.selenium. Von; importieren Sie org.openqa.selenium. WebDriver; importieren Sie org.openqa.selenium. NetzElement; öffentliche String-ID; öffentlicher String-Wert; öffentlicher String-Wert; öffentlicher String-Wert; öffentlicher String-Name; öffentlicher String-Pfad; öffentlicher String-XPfad; öffentliches String-Element = driver.findElement(By. id(id))); Rückgabe-Element; findElement(driver). submit() ; Paket-Elemente; importieren von org.openqa.selenium.

Von; importieren Sie org.openqa.selenium. WebDriver; importieren Sie org.openqa.selenium. NetzElement; öffentliche Zeichenkette ; öffentliche Zeichenkette xpath ; öffentliche Zeichenkette xpath ; NetzElement-Element = driver.findElement(By. id(id)); Rückgabeelement ; findElement(driver). Unser Objekt-Repository wird ebenfalls im Selenium-Java-Code selbst verwaltet. Zu diesem Zweck haben wir ein Paket namens "ObjectRepository" gestartet, um es klarer zu unterteilen. Aus unserer WordPress Login/Registrierungs-Seite übernehmen wir nur die Felder Benutzername / Passwort und den Submit-Button in das Objekt-Repository. Paket ObjektRepository; importieren Sie org.openqa.selenium.

Von; importieren Sie org.openqa.selenium. WebDriver; importieren Sie org.testng. tfBenutzername. Bezeichnung = "log" ; tfBenutzername. .tfBenutzername. expath = "/html/body/div/div/div/div/div/div/div//article/div/div/div/div/div/iv[3]/span/form/p[1]/input" ; tfPassword = neues tbCom_element_textfield() ; tfPassword. id = "user_pass" ; tfPassword. Name = "pwd" ; tfPassword.

Expath = "/html/body/div/div/div/div/div/div/article/div/div/div/div/div/iv/[3]/span/form/p[2]/input" ; bButtonLogin = neuer tbCom_element_element_button() ; bButtonLogin. id = "wp-submit" ; bButtonLogin. name = "wp-submit" ; bButtonLogin. valeur = "Anmelden" ;bButtonL". clear(Treiber) ; bButtonLogin. submit(Treiber) ; String fullBodyText = driver.findElement(By.tagName("body"))). getText(). getText() ; Assert.assert.assert.assertTrue(fullBodyText.

nnkZiele = neu tbCom_element_Link(); nnkZiele. id = "menu-item-517"; nnkZiele. nxpath = "/html/body/header/div[1]/nav/ul/li[2]" ; lnkLoginRegister = neu tbCom_element_element_Link(); lnn iD= " menu-item-826 " ; lnkLoginRegister. xPfad = " /html/body/body/header/div[1]/nav/ul/li[3]"; Paket ObjektRepository; importieren org.openqa.sélénium. Von; importieren Sie org.openqa.selenium. WebDriver; importieren Sie org.testng.

lnkTest automation = "/html/body/header/div[2]/div/div[2]/nav/ul[1]/li[1]"; lnkTest automation = neues tbCom_element_Link(); lnkTest automation. id = "menu-item-695"; lnkTest automation. nnav/ul[[1]/li[2]"; lnkLastUndPerformancetest = neuer tbCom_element_Link(); lnkLastUndPerformancetest. id = "menu-item-634" ; lnkLastUndPerformancetest. click(driver); String fullBodyText = driver.findElement(By.tagName("body")). getText(); Assert.assertTrue(fullBodyText. Außerdem hinterlegen wir für die einzelnen Objekte im Objekt-Repository Eigenschaften wie z. B. X-Pfad, ID und Nennung.

Das gesamte Referenzieren und die Technologie der Selenium-Testautomatisierung liegt daher in den Elementklassen und Objekt-Repository-Klassen. Das Testschritt-Paket hat folgende Klasse: java.util.concurrent importieren. TimeUnit; importiere org.openqa.selenium. WebDriver; importieren Sie org.openqa.selenium.firefox. ChromeDriver; * @param args argument 0 = Browser: "Chrome", "Firefox" argument 1 = Benutzerrolle: * "Normal", "Admin" öffentlicher WebDriver Treiber; statischer Benutzer für den Benutzer mit dem Namen bcx. html; String brouser = null; System.out. println("No Browser Parameters given, use standard Browser Firefox"); brouser = "Firefox"; brouser = =; brouser = args[0]; treiber = new Fire; string pathToChromeDriver = ".

"Rückgabewert; dt. Benutzer; dt. tbCom_Objektrepository_Page_LoginRegister Seite = neu tbCom_Objektrepository_Page_LoginRegister() ; Page.tfUsername. type (driver, benutzername ) ; Page.tfPassword. type (driver, user.). type (driver, user.). type(driver, user.). tc.

Wenn Sie den Versuchsfall wie nachfolgend beschrieben gestalten möchten, müssen Sie sich nicht um Objektreferenzen kümmern, da alles auf das bestehende Objekt-Repository zugegriffen wird. ObjectRepository importieren. ³ ObjectRepository importieren. c) Das Objekt-Repository_MainNaviBar; ObjectRepository importieren. Einloggen ; ObjectRepository importieren. Einloggen; ObjectRepository importieren. Einloggen; dt. Einloggen; dt. Einloggen; * xx 0 = Webbrowser: "Chrome", "Firefox" * xx 1 = Rôle utilisateur: "Normal", "Admin" dt. Vollständiger TeststepBundle testen = neuer tbCom_CompleteTeststepBundle(); init.

Allerdings können der benutzte Webbrowser (Chrome|Firefox) und der Benutzer (Normal|Admin) beim Testfallaufruf noch als zwei Parameter mitgereicht werden. So sollte nun unser Selen-Projekt in Finsternis aussehen: Auch im Objekt-Repository können wir auf die Eigenschaften unseres Elementes, die ID oder den hinterlegten XPfad unmittelbar zurückgreifen.

Dies geschieht mit dem von Ihnen gewählten Webbrowser und Benutzer. Wir können alles, was getestet werden muss, Selen geben.

Mehr zum Thema