top 25 selenium webdriver commands that you should know
Top Selenium WebDriver-Befehle - Ein phänomenaler Leitfaden für Automatisierungstester
Selenium WebDriver ist eines der beliebtesten Open Source-Tools zur Website-Automatisierung. Die meisten meiner Kollegen im Bereich Automatisierungstester bevorzugen die Kombination von WebDriver mit Java.
In diesem Tutorial werde ich 25 routinemäßig verwendete Selenium WebDriver-Befehle zusammen mit der betreffenden Syntax und einfachen Beispielen für Ihr leichtes Verständnis erläutern.
Was du lernen wirst:
- Arten von Befehlen in WebDriver
- Top 7 Selen-Befehle mit Details
- Liste der 25 beliebtesten WebDriver-Befehle und -Beispiele
- # 1) get ()
- # 2) getCurrentUrl ()
- # 3) findElement (By, by) und click ()
- # 4) isEnabled ()
- # 5) findElement (By, by) mit sendKeys ()
- # 6) findElement (By, by) mit getText ()
- # 7) Submit ()
- # 8) findElements (By, by)
- # 9) findElements (By, by) mit size ()
- # 10) pageLoadTimeout (Zeit, Einheit)
- # 11) implizitWarten ()
- # 12) bis () und Sichtbarkeit von ElementLocated ()
- # 13) bis () und alertIsPresent ()
- # 14) getTitle ()
- # 15) Wählen Sie
- # 16) navigiere ()
- # 17) getScreenshotAs ()
- # 18) moveToElement ()
- # 19) dragAndDrop ()
- # 20) switchTo () und accept (), accept () und sendKeys ()
- # 21) getWindowHandle () und getWindowHandles ()
- # 22) getConnection ()
- # 23) DANN
- # 24) assertEquals (), assertNotEquals (), assertTrue () und assertFalse ()
- # 25) close () und quit ()
- Fazit
- Literatur-Empfehlungen
Arten von Befehlen in WebDriver
In dem letztes Selenium Tutorial haben wir das besprochen verschiedene Arten von Warnungen beim Testen von webbasierten Anwendungen und deren effektiven Handhabung angetroffen. Wir haben beide Arten von Warnungen, d. H. 'Webbasierte Warnungen' und 'Fensterbasierte Warnungen', ausführlich besprochen. Wir haben Sie auch mit einem weiteren Java-basierten Dienstprogramm namens 'Robot Class' vertraut gemacht, mit dem Windows-basierte Popups verarbeitet werden können.
Vorankommen in Diese Selenium WebDriver-Tutorialserie würden wir weitermachen verschiedene häufig und routinemäßig verwendete Selenium WebDriver-Befehle . Wir werden jeden dieser Selenium-Befehle genau und kurz besprechen, damit Sie diese Befehle in jeder Situation effektiv einsetzen können.
Jede Automatisierungs-Java-Arbeitsdatei beginnt mit der Erstellung einer Referenz des Webbrowsers, die wir wie in der folgenden Syntax erwähnt verwenden möchten.
Es gibt verschiedene Methoden, die über die Webdriver-Oberfläche verfügbar sind. Auf diese Methoden wird über die Instanzvariable zugegriffen Treiber in einem einfachen Format driver.methodName (); . Bei all diesen Automatisierungsprojekten werden diese Methoden aufgerufen und verglichen und bewertet, was sie tatsächlich zurückgeben.
In einfachen Worten können wir Webdriver-Befehle im Allgemeinen wie folgt klassifizieren:
- Browserbefehle,
- Befehle abrufen,
- Navigationsbefehle,
- Webelement-Befehle,
- Aktionsbefehle und
- Ergebnisbefehle.
Im Kontext des manuellen Testens wird das Ergebnis eines Tests, entweder PASS oder FAIL, aus den Ergebnisbefehlen bestimmt, die normalerweise die erwarteten und tatsächlichen Ergebnisse vergleichen, und der Rest sind Testfallschritte.
Top 7 Selen-Befehle mit Details
Um eine grobe Vorstellung zu haben, würden wir die folgenden Selenium WebDriver-Befehle und ihre verschiedenen Versionen diskutieren:
- erhalten() Methoden
- Links finden von Link Text () und PartialLinkText ()
- Auswählen mehrerer Elemente in einer Dropdown-Liste
- Senden eines Formulars
- Umgang mit Iframes
- schließen() und Verlassen() Methoden
- Ausnahmebehandlung
# 1) get () Methoden
WebDriver-Befehl | Verwendung |
---|---|
getAttribute () | • Mit dem Befehl wird der Wert des angegebenen Attributs abgerufen • Der Befehl erfordert einen einzelnen Zeichenfolgenparameter, der auf ein Attribut verweist, dessen Wert wir kennen möchten, und als Ergebnis einen Zeichenfolgenwert zurückgibt. driver.findElement (By.id ('findID')). getAttribute ('value'); |
erhalten() | • Der Befehl startet einen neuen Browser und wird geöffnet die angegebene URL in der Browserinstanz • Der Befehl verwendet einen einzelnen Parameter vom Typ Zeichenfolge, bei dem es sich normalerweise um eine URL der zu testenden Anwendung handelt • Für die Selenium IDE-Benutzer ähnelt der Befehl möglicherweise dem Befehl open driver.get ('https://google.com'); |
getClass () | Mit dem Befehl wird das Class-Objekt abgerufen das repräsentiert die Laufzeitklasse dieses Objekts driver.getClass (); |
getCurrentUrl () | • Mit dem Befehl wird die URL der Webseite abgerufen, auf die der Benutzer gerade zugreift • Der Befehl benötigt keinen Parameter und gibt einen Zeichenfolgenwert zurück driver.getCurrentUrl (); |
getPageSource () | • Mit dem Befehl wird die Seitenquelle abgerufen der Webseite, auf die der Benutzer gerade zugreift • Der Befehl benötigt keinen Parameter und gibt einen Zeichenfolgenwert zurück • Der Befehl kann mit verschiedenen Zeichenfolgenoperationen wie includes () verwendet werden, um die zu ermitteln Vorhandensein des angegebenen Zeichenfolgenwerts boolean result = driver.getPageSource (). enthält ('String to find'); |
getTitle () | • Mit dem Befehl wird der Titel der Webseite abgerufen, an der der Benutzer gerade arbeitet. Eine Nullzeichenfolge wird zurückgegeben, wenn die Webseite keinen Titel hat • Der Befehl benötigt keinen Parameter und gibt einen zugeschnittenen Zeichenfolgenwert zurück String title = driver.getTitle (); |
getText () | • Mit dem Befehl wird der innere Text abgerufen des angegebenen Webelements • Der Befehl benötigt keinen Parameter und gibt einen Zeichenfolgenwert zurück • Es ist auch einer der häufig verwendeten Befehle zur Überprüfung der angezeigten Nachrichten, Beschriftungen, Fehler usw. auf den Webseiten. String Text = driver.findElement (By.id ('Text')). GetText (); |
getWindowHandle () | • Der Befehl wird verwendet, um die Situation zu bewältigen, in der mehr als ein Fenster behandelt werden muss. • Der Befehl hilft uns, zum neu geöffneten Fenster zu wechseln und Aktionen für das neue Fenster auszuführen. Der Benutzer kann auch zum vorherigen Fenster zurückkehren, wenn er dies wünscht. private String winHandleBefore; winHandleBefore = driver.getWindowHandle (); driver.switchTo (). window (winHandleBefore); |
getWindowHandles () | • Der Befehl ähnelt dem von 'getWindowHandle ()' mit dem subtilen Unterschied, dass es hilfreich ist, mit mehreren Fenstern umzugehen, d. H. Wenn wir mit mehr als zwei Fenstern arbeiten müssen. |
Das Code-Snippet für 'getWindowHandles ()' ist unten angegeben:
public void explicitWaitForWinHandle(final WebDriver dvr, int timeOut, final boolean close) throws WeblivException { try { Wait wait = new WebDriverWait(dvr, timeOut); ExpectedCondition condition = new ExpectedCondition() { @Override public Boolean apply(WebDriver d) { int winHandleNum = d.getWindowHandles().size(); if (winHandleNum > 1) { // Switch to new window opened for (String winHandle : d.getWindowHandles()) { dvr.switchTo().window(winHandle); // Close the delete window as it is not needed if (close && dvr.getTitle().equals('Demo Delete Window')) { dvr.findElement(By.name('ok')).click(); } } return true; } return false; } };
# 2) Suchen von Links mit linkText () und PartialLinkText ()
Lassen Sie uns mit auf 'google.com' und 'abodeqa.com' zugreifen Link Text () und PartialLinText () Methoden von WebDriver.
Auf die oben genannten Links kann mit den folgenden Befehlen zugegriffen werden:
Treiber .findElement (By.linkText ( 'Google' )).klicken();
Treiber .findElement (By.linkText ( AbodeQA )).klicken();
Der Befehl findet das Element mithilfe von Linktext und klickt dann auf dieses Element. Der Benutzer wird dann auf die entsprechende Seite weitergeleitet.
Auf die oben genannten Links kann auch mit den folgenden Befehlen zugegriffen werden:
Treiber .findElement (By.partialLinkText ( 'Schmiere' )).klicken();
Treiber .findElement (By.partialLinkText ( 'Aufenthalt' )).klicken();
Die beiden obigen Befehle finden die Elemente basierend auf der Teilzeichenfolge des in Klammern angegebenen Links. PartialLinkText () findet daher das Webelement mit der angegebenen Teilzeichenfolge und klickt darauf.
# 3) Auswählen mehrerer Elemente in einer Dropdown-Liste
Es gibt hauptsächlich zwei Arten von Dropdowns:
- Einzelauswahl-Dropdown : Ein Dropdown-Menü, in dem jeweils nur ein Wert ausgewählt werden kann.
- Dropdown-Liste mit Mehrfachauswahl : Ein Dropdown-Menü, in dem mehrere Werte gleichzeitig ausgewählt werden können.
Betrachten Sie den folgenden HTML-Code für ein Dropdown-Menü, in dem mehrere Werte gleichzeitig ausgewählt werden können.
Red Green Yellow Grey
Das folgende Codefragment zeigt die Mehrfachauswahl in einer Dropdown-Liste.
// select the multiple values from a dropdown Select selectByValue = new Select(driver.findElement(By.id('SelectID_One'))); selectByValue.selectByValue('greenvalue'); selectByValue.selectByVisibleText('Red'); selectByValue.selectByIndex(2);
# 4) Senden eines Formulars
Die meisten oder fast alle Websites verfügen über Formulare, die beim Testen einer Webanwendung ausgefüllt und eingereicht werden müssen. Der Benutzer kann auf verschiedene Arten von Formularen stoßen, wie Anmeldeformular, Registrierungsformular, Datei-Upload-Formular, Profilerstellungsformular usw.
In WebDriver wird ein Benutzer mit einer Methode genutzt, die speziell zum Senden eines Formulars erstellt wurde. Der Benutzer kann auch die Klickmethode verwenden, um auf die Schaltfläche 'Senden' als Ersatz für die Schaltfläche 'Senden' zu klicken.
Überprüfen Sie das folgende Codefragment anhand des obigen Formulars 'Neuer Benutzer':
// enter a valid username driver.findElement(By. id ('username')).sendKeys('name'); // enter a valid email address driver.findElement(By. id ('email')).sendKeys('name@abc.com'); // enter a valid password driver.findElement(By. id ('password')).sendKeys('namepass'); // re-enter the password driver.findElement(By. id ('passwordConf')).sendKeys('namepass'); // submit the form driver.findElement(By. id ('submit')).submit();
Sobald die Programmsteuerung die Submit-Methode findet, findet sie das Element und löst das aus einreichen() Methode auf dem gefundenen Webelement.
# 5) Umgang mit Iframes
Bei der Automatisierung von Webanwendungen kann es vorkommen, dass wir mehrere Frames in einem Fenster bearbeiten müssen. Daher muss der Entwickler des Testskripts aus diesem Grund zwischen verschiedenen Frames oder Iframes hin und her wechseln.
Ein Inline-Frame-Akronym als Iframe wird verwendet, um ein anderes Dokument in das aktuelle HTML-Dokument oder einfach eine Webseite in eine andere Webseite einzufügen, indem die Verschachtelung aktiviert wird.
Betrachten Sie den folgenden HTML-Code mit dem Iframe auf der Webseite:
Software Testing Help - iframe session
Der obige HTML-Code veranschaulicht das Vorhandensein eines eingebetteten Iframes in einem anderen Iframe. Um auf den untergeordneten Iframe zugreifen zu können, muss ein Benutzer zuerst zum übergeordneten Iframe navigieren. Nach dem Ausführen der erforderlichen Operation muss ein Benutzer möglicherweise zum übergeordneten Iframe zurück navigieren, um sich mit dem anderen Element der Webseite zu befassen.
Es ist nicht möglich, wenn ein Benutzer versucht, direkt auf den untergeordneten Iframe zuzugreifen, ohne zuerst zum übergeordneten Iframe zu wechseln.
Wählen Sie iframe nach ID
Treiber .switchTo (). frame ( '' ID des Rahmens '' );
Suchen des Iframes mithilfe von tagName
Beim Auffinden eines Iframes kann es zu Problemen kommen, wenn dem Iframe keine Standardeigenschaften zugewiesen werden. Es wird zu einem komplexen Prozess, den Frame zu lokalisieren und zu ihm zu wechseln. Um die Situation einzudämmen, kann ein Benutzer mithilfe einer tagName-Methode einen Iframe suchen, ähnlich wie wir jedes andere Webelement in WebDriver finden.
driver.switchTo (). frame (driver.findElements (By.tagName ('iframe'). get (0));
Der obige Befehl sucht das erste Webelement mit dem angegebenen tagName und wechselt zu diesem iframe. 'Get (0) wird verwendet, um den Iframe mit dem Indexwert zu lokalisieren.' In Übereinstimmung mit unserem HTML-Code würde die obige Codesyntax dazu führen, dass die Programmsteuerung zu 'ParentFrame' wechselt.
Suchen des Iframes mithilfe des Index:
a) Rahmen (Index)
driver.switchTo (). frame (0);
b) Rahmen (Name des Rahmens)
driver.switchTo (). frame ('Name des Rahmens');
c) Frame (WebElement-Element)
Wählen Sie Übergeordnetes Fenster
driver.switchTo (). defaultContent ();
Der obige Befehl bringt den Benutzer zurück zum ursprünglichen Fenster, d. H. Aus beiden Iframes.
# 6) close () und quit () Methoden
In WebDriver gibt es zwei Arten von Befehlen zum Schließen der Webbrowser-Instanz.
ein enger() : Die close () -Methode von WebDriver schließt das Webbrowser-Fenster, an dem der Benutzer gerade arbeitet, oder wir können auch sagen, auf welches Fenster der WebDriver gerade zugreift. Der Befehl erfordert weder einen Parameter noch gibt er einen Wert zurück.
b) quit () : Im Gegensatz zur Methode close () schließt die Methode quit () alle Fenster, die das Programm geöffnet hat. Wie die Methode close () benötigt der Befehl weder einen Parameter noch gibt er einen Wert zurück.
Lesen Sie die folgenden Codefragmente:
Treiber .schließen(); // schließt nur ein einziges Fenster, auf das derzeit von der WebDriver-Instanz zugegriffen wird
Treiber .Verlassen(); // schließt alle Fenster, die von der WebDriver-Instanz geöffnet wurden
# 7) Ausnahmebehandlung
Ausnahmen sind die Bedingungen oder Situationen, die die Programmausführung unerwartet anhalten.
Gründe für solche Bedingungen können sein:
- Vom Benutzer eingeführte Fehler
- Vom Programmierer erzeugte Fehler
- Durch physische Ressourcen erzeugte Fehler
Um mit diesen unerwarteten Bedingungen fertig zu werden, wurde die Ausnahmebehandlung konzipiert.
In Bezug auf Java-Code, den wir während der Automatisierung einer Webanwendung implementieren, kann dieser in einen Block eingeschlossen werden, der einen Verarbeitungsmechanismus gegen die fehlerhaften Bedingungen bereitstellen kann.
Eine Ausnahme abfangen
Um eine Ausnahme abzufangen, verwenden wir den folgenden Codeblock
try{ // Protected block // implement java code for automation } catch (ExceptionName e) { // catch block - Catches the exceptions generated in try block without halting the program execution }
Wenn im try-Block / protected-Block eine Ausnahme auftritt, sucht die Ausführungssteuerung nach einem catch-Block für den übereinstimmenden Ausnahmetyp und übergibt die Ausnahme an ihn, ohne die Programmausführung zu unterbrechen.
Mehrere Fangblöcke
try{ //Protected block } catch (ExceptionType1 e) { // catch block } catch (ExceptionType2 e) { // catch block } catch (ExceptionType3 e) { // catch block }
Im obigen Code wird wahrscheinlich eine Ausnahme im ersten catch-Block abgefangen, wenn der Ausnahmetyp übereinstimmt. Wenn der Ausnahmetyp nicht übereinstimmt, wird die Ausnahme zum zweiten Fangblock und dritten Fangblock usw. durchlaufen, bis alle Fangblöcke besucht sind.
WebDriver-Bedingungen und Ausnahmebehandlung
Wenn wir das Vorhandensein eines Elements auf der Webseite mithilfe verschiedener bedingter WebDriver-Befehle überprüfen möchten, geht WebDriver davon aus, dass das Webelement auf der Webseite vorhanden ist. Wenn das Webelement nicht auf der Webseite vorhanden ist, lösen die bedingten Befehle eine 'NoSuchElementPresentException' aus. Um zu vermeiden, dass solche Ausnahmen die Programmausführung stoppen, verwenden wir Mechanismen zur Ausnahmebehandlung. Lesen Sie das folgende Code-Snippet:
WebElement saveButton = driver.findElement(By.id('Save')); try{ if(saveButton.isDisplayed()){ saveButton.click(); } } catch(NoSuchElementException e){ e.printStackTrace(); }
Liste der 25 beliebtesten WebDriver-Befehle und -Beispiele
Im Folgenden finden Sie eine Liste der 25 routinemäßig verwendeten Webdriver-Befehle, die jeder Automatisierungstester kennen muss.
Lassen Sie uns diese Befehle einzeln im Detail durchgehen.
Weiterführende Literatur => Selenium WebDriver Tutorial
# 1) get ()
Befehl mit get () zum Öffnen einer URL im aktuellen Browser.
Mit dem folgenden Befehl wird die angegebene URL 'https://www.softwaretestinghelp.com' im Browser geöffnet.
Syntax:
driver.get('https://www.softwaretestinghelp.com');
Erläuterung:
- Navigieren Sie zur URL https://www.softwaretestinghelp.com
# 2) getCurrentUrl ()
Befehl mit getCurrentUrl (), um zu überprüfen, ob die URL korrekt ist.
Der folgende Befehl ruft die aktuelle URL im Zeichenfolgenformat ab.
Syntax:
bester Youtube zu MP3 Konverter für Mac
driver.getCurrentUrl();
Normalerweise verwenden wir diese Methode in Befehlen, um zu überprüfen, ob wir wie erwartet zur richtigen Seite navigiert sind. Dafür müssen wir Assert wie unten gezeigt verwenden Beispiel .
Syntax:
Assert.assertEquals(expectedUrl, driver.getCurrentUrl());
Wobei expectedUrl die URL ist, die im Zeichenfolgenformat erwartet wird.
Erläuterung:
- Überprüfen Sie, ob die geladene URL gleich bleibt und die richtige Seite geladen ist.
# 3) findElement (By, by) und click ()
findElement (By, by) und click (), um auf ein Element der Webseite zu klicken.
Die Methode findElement (By, by) sucht und sucht das erste Element auf der aktuellen Seite, das den als Parameter angegebenen Kriterien entspricht. Diese Methode wird normalerweise in Befehlen verwendet, um Benutzeraktionen wie Klicken, Senden, Eingeben usw. zu simulieren.
Der folgende Befehl sucht und findet das erste Element auf der Webseite mit der ID 'submit1' und klickt darauf, wenn es nicht behandelt wird.
Syntax:
driver.findElement(By.id('submit1')).click();
Das Element kann mit lokalisiert werden ICH WÜRDE , Name , Klasse Name , Verlinke den Namen , Link Text & Teilweiser Linktext , CSS-Auswahl und X Pfad .
Erläuterung:
- Suchen Sie nach der gewünschten Schaltfläche 'Senden'.
- Klicken Sie auf die Schaltfläche.
Der folgende Befehl wählt ein Element aus dem Listenfeld aus.
Syntax:
WebElement roleDropdown = driver.findElement(By.id('name1'); roleDropdown.click();
Erläuterung:
- Suchen und suchen Sie das Listenelement anhand der ID „name1“.
- Klicken Sie auf diesen Artikel.
# 4) isEnabled ()
isEnabled (), um zu überprüfen, ob das Element im Selenium WebDriver aktiviert oder deaktiviert ist.
Um zu überprüfen, ob ein bestimmtes Element auf einer Webseite aktiviert ist, verwenden wir die Methode isEnabled ().
Syntax:
boolean textBox = driver.findElement(By.xpath('//input(@name='textbox1')')).isEnabled();
Erläuterung:
- Findet das Element auf der Webseite gemäß dem xpath und prüft, ob das Element aktiviert ist.
# 5) findElement (By, by) mit sendKeys ()
findElement (By, by) mit sendKeys (), um die Formularfelder einzugeben.
Formularvalidierungsprüfungen durch Eingabe der verschiedenen Benutzereingaben, die häufig für Automatisierungstests erforderlich sind. Wir verwenden findElement (By, by), um die Felder zu finden, und sendKeys (), um Inhalte in ein bearbeitbares Feld einzugeben.
Der folgende Befehl verwendet den Namensfinder, um das Formularfeld zu finden, und gibt 'Aaron' ein.
Syntax:
driver.findElement(By.name('name')).sendkeys('Aaron');
Erläuterung:
- Suchen Sie im Formular nach dem gewünschten Namensfeld.
- Geben Sie den Wert 'Aaron' ein.
# 6) findElement (By, by) mit getText ()
findElement (By, by) mit getText (), um den Wert des Zielwebelements zu speichern.
GetText () ist eine Methode, mit der Sie den inneren Text des Webelements abrufen können. Text abrufen ist der Text in den HTML-Tags.
Der folgende Code findet das Element mit dem TagName 'select' und ruft den Text im Tag ab und speichert ihn in einem variablen Dropdown-Menü. Jetzt kann der String dropDown für weitere Aktionen innerhalb des Programms verwendet werden.
Syntax:
String dropDown = driver.findElement(By.tagName('dropdown1')).getText();
Erläuterung:
- Suchen Sie im Formular nach dem erforderlichen Feld mit dem Tag-Namen 'dropdown1'.
- Nehmen Sie den Text in sein HTML-Tag.
- Speichern Sie den Text im String-Objekt 'DropDown'.
# 7) Submit ()
Submit (), um ein Webformular einzureichen.
Mit der oben beschriebenen click () -Methode können Sie auf beliebige Links oder Schaltflächen klicken. Submit () ist eine bessere Alternative zu click (), wenn das zu klickende Element eine Submit-Schaltfläche ist. Die Schaltfläche 'Senden' befindet sich im HTML-Tag 'Formular' und der Typ der Schaltfläche lautet 'Senden' (nicht 'Schaltfläche').
Das submit () erleichtert das Leben, indem es automatisch die Schaltfläche und die Methode findet, die an jedes andere Feld wie Name oder E-Mail-Adresse angehängt werden können. Im Falle eines Klicks müssen wir die Methode findElement (By, by) verwenden und die richtigen Locators angeben.
In einigen Szenarien, in denen die Aktion über andere Elemente als eine Schaltfläche ausgeführt wird, funktioniert submit () und click () funktioniert nicht.
Syntax:
driver.findElement(By.xpath('//input(@name='comments')')).submit();
Erläuterung:
- Suchen Sie ein Element im angegebenen x-Pfad mit dem Namen 'Kommentare'.
- Senden Sie das Formular.
# 8) findElements (By, by)
findElements (By, by), um die Liste der Webelemente abzurufen.
Manchmal möchten wir möglicherweise eine Liste von Webelementen wie Links oder Eingabefeldern auf einer Webseite drucken oder eine Aktion ausführen. In einem solchen Fall verwenden wir findElements (By, by).
Syntax:
List allChoices = dropDown.findElements(By.xpath('.//fruitoption'));
Erläuterung:
- Eine Liste aller Webelemente mit dem angegebenen xpath wird in der Webelementliste allChoices gespeichert.
# 9) findElements (By, by) mit size ()
findElements (By, by) mit size (), um zu überprüfen, ob ein Element vorhanden ist.
Mit findElements (By, by) kann überprüft werden, ob ein Element tatsächlich auf der Webseite vorhanden ist.
Der folgende Befehl wird verwendet, wenn überprüft werden soll, ob ein Element mit einem bestimmten Locator auf einer Webseite vorhanden ist. Wenn size ()! = 0 ist, ist das Element vorhanden.
Syntax:
Boolean checkIfElementPresent= driver.findElements(By.xpath('//input(@id='checkbox2')')).size()!= 0;
Erläuterung:
- Das Suchelement wird in xpath mit der ID 'checkbox2' angegeben.
- Je nach Größe der Elementliste wird das boolesche checkIfElementPresent auf TRUE oder FALSE gesetzt.
# 10) pageLoadTimeout (Zeit, Einheit)
pageLoadTimeout (Zeit, Einheit), um die Zeit festzulegen, zu der eine Seite geladen werden soll.
Aufgrund von Serverproblemen oder Netzwerkverzögerungen kann das Laden einer Seite manchmal länger dauern als gewöhnlich. Dies könnte einen Fehler im Programm auslösen. Um dies zu vermeiden, setzen wir eine Wartezeit und pageLoadTimeout () ist eine solche Methode. Dies folgt normalerweise einem Befehl get ().
Syntax:
driver.manage().timeouts().pageLoadTimeout(500, SECONDS);
Erläuterung:
- Warten Sie 500 Sekunden, bis eine Seite geladen ist.
# 11) implizitWarten ()
implicitlyWait (), um eine Wartezeit festzulegen, bevor ein Webelement gesucht und gefunden wird.
Was passiert, wenn der Webdriver versucht, ein Element zu finden, bevor die Webseite geladen wird und das Element angezeigt wird? NoSuchElementExeption wird ausgelöst. Um dies zu vermeiden, können wir einen Befehl hinzufügen, um implizit eine bestimmte Zeit zu warten, bevor das Element gefunden wird.
Syntax:
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
Erläuterung:
- Warten Sie implizit 1000 Sekunden, bevor Sie die nächste Zeile im Code ausführen.
# 12) bis () und Sichtbarkeit von ElementLocated ()
Bis () von WebdriverWait und VisibilityOfElementLocated () von ExpectedConditions warten Sie explizit, bis ein Element auf der Webseite sichtbar ist.
Es wird schwierig, Fälle zu behandeln, in denen ein Element zu lange braucht, um auf der Software-Webseite sichtbar zu sein. In diesem Fall können wir einen Kommentar schreiben, um zu warten, bis das Element auf der Webseite angezeigt wird. Dieser Befehl verwendet eine Kombination aus der Methode till () aus der WebdriverWait-Klasse und der VisibilityOfElementLocated () -Methode aus der ExpectedConditions-Klasse.
Syntax:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated (By.xpath('//input(@id=’name’)')));
Erläuterung:
- Die erste Zeile gibt an, wie viel Wartezeit 10 Sekunden beträgt.
- Die zweite Bedingung besagt eine erwartete Bedingung, auf die gewartet werden muss. Hier ist es ein Element mit dem ID-Namen im genannten xpath.
# 13) bis () und alertIsPresent ()
bis () von WebdriverWait und alertIsPresent () von ExpectedConditions, um explizit zu warten, bis eine Warnung angezeigt wird.
In einigen Szenarien müssen wir auf Warnungen warten, um den Test fortzusetzen. In diesem Fall verwenden wir einen Befehl mit der Methode till () aus der WebdriverWait-Klasse und der alertIsPresent () -Methode aus der ExpectedConditions-Klasse.
Bitte beachten Sie den folgenden Befehl:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.alertIsPresent() );
Erläuterung:
- In der ersten Zeile steht, wie lange gewartet werden muss - das sind 10 Sekunden.
- Die zweite Bedingung besagt eine erwartete Bedingung, auf die gewartet werden muss. Hier ist ein Alarm-Popup.
# 14) getTitle ()
getTitle (), um den Seitentitel im Selenium-Webdriver abzurufen.
Syntax:
String title = driver.getTitle(); System.out.println(title);
Dies wird normalerweise verwendet, um den Titel in den Ausgabeprotokollen zu drucken.
Erläuterung:
- Rufen Sie den Titel der Webseite ab und speichern Sie ihn im Titel des String-Objekts.
- Drucken Sie den im Titel gespeicherten Wert in die Ausgabeprotokolle.
# 15) Wählen Sie
Wählen Sie eine Klasse zum Auswählen und Abwählen von Werten aus der Dropdown-Liste in Selenium WebDriver aus.
Wir haben oft Dropdown-bezogene Szenarien. Hierzu werden Methoden aus der Select-Klasse verwendet. Wir können je nach Szenario selectByVisibleText (), selectByValue () oder selectByIndex () verwenden.
Syntax:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.selectByVisibleText('Apple');
Erläuterung:
- Suchen Sie Dropdown mit der ID 'select'.
- Wählen Sie den sichtbaren Text 'Apple' aus der Dropdown-Liste.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.selectByValue('Apple')
Erläuterung:
- Suchen Sie das Dropdown-Menü mit der ID 'select'.
- Wählen Sie den Text mit dem Wert 'Apple' aus der Dropdown-Liste.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.selectByIndex(1);
Erläuterung:
- Suchen Sie das Dropdown-Menü mit der ID 'select'.
- Wählen Sie das Dropdown-Element mit dem Indexwert '1' aus der Dropdown-Liste (zweites Element) aus.
Ähnlich wie bei der Auswahl können wir mit ähnlichen Befehlen die Auswahl von Werten aus der Dropdown-Liste aufheben.
Bitte überprüfen Sie die Befehle:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.deselectByVisibleText('Apple');
Erläuterung:
- Suchen Sie das Dropdown-Menü mit der ID 'select'.
- Deaktivieren Sie den sichtbaren Text 'Apple' aus der Dropdown-Liste.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.deselectByValue('Apple');
Erläuterung:
- Suchen Sie das Dropdown-Menü mit der ID 'select'.
- Deaktivieren Sie den Text mit dem Wert 'Apple' aus der Dropdown-Liste.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.deselectByIndex(1);
Erläuterung:
- Suchen Sie das Dropdown-Menü mit der ID 'select'.
- Deaktivieren Sie das Dropdown-Element mit dem Indexwert '1' aus der Dropdown-Liste (zweites Element).
navigieren (), um zwischen den URLs zu navigieren.
Wir sehen oft Szenarien, in denen wir möglicherweise von der Ziel-URL aus navigieren und dann vorwärts oder rückwärts gehen möchten. In solchen Fällen können wir anstelle von get () navig () verwenden. In Navigate können wir die Methoden back () und forward () verwenden, ohne die URLs anzugeben.
Syntax:
driver.navigate().to('https://www.softwaretestinghelp.com'); driver.navigate().back(); driver.navigate().forward();
Erläuterung:
- Navigieren Sie zu https://www.softwaretestinghelp.com
- Navigieren Sie zurück.
- Vorwärts navigieren.
# 17) getScreenshotAs ()
getScreenshotAs (), um den gesamten Screenshot der Seite in Selenium WebDriver zu erfassen.
Diese ist häufig erforderlich, um Ihre Arbeitsdetails zu speichern oder manchmal die Ausgaben manuell zu überprüfen. Der folgende Befehl wird verwendet, um einen Screenshot zu erstellen und in einer Ausgabedatei zu speichern.
Syntax:
File shot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(shot, new File('D:\ shot1.jpg'));
Erläuterung:
- Machen Sie einen Screenshot und speichern Sie die Datei in der Objektaufnahme.
- Speichern Sie die Datei im Laufwerk D als shot1.png.
# 18) moveToElement ()
moveToElement () aus der Actions-Klasse, um den Maus-Hover-Effekt zu simulieren.
Es gibt Szenarien, in denen wir den Mauszeiger über Webelemente wie über das Menü bewegen müssen, um das Untermenü anzuzeigen, Links, um Farbänderungen anzuzeigen usw. In diesen Fällen verwenden wir die Actions-Klasse. Sehen Sie sich die folgende Syntax für die Action-Klasse an.
Syntax:
Actions actions = new Actions(driver); WebElement mouseHover = driver.findElement(By.xpath('//div(@id='mainmenu1')/div')); actions.moveToElement(mouseHover); actions.perform();
Erläuterung
- Suchen und suchen Sie das Webelement mit der Div-ID 'mainmenu1'.
- Bewegen Sie den Mauszeiger auf das Element.
# 19) dragAndDrop ()
dragAndDrop () aus der Actions-Klasse, um ein Element zu ziehen und auf einem anderen Element abzulegen.
In einigen Szenarien möchten wir möglicherweise Elemente ziehen. Zum Beispiel, Ziehen Sie ein Bild auf die Bühne. In diesem Fall können wir die Actions-Klasse verwenden.
In der dragAndDrop-Methode übergeben wir die beiden Parameter Source locator - das Element, das wir ziehen möchten, und Destination locator - das Element, auf das wir ablegen möchten.
Syntax:
WebElement sourceLocator = driver.findElement(By.xpath('//*(@id='image1')/a')); WebElement destinationLocator = driver.findElement(By.xpath('//*(@id='stage')/li')); Actions actions=new Actions(driver); actions.dragAndDrop(sourceLocator, destinationLocator).build().perform();
Erläuterung:
- Suchen und suchen Sie das Quellwebelement.
- Suchen und suchen Sie das Zielwebelement.
- Ziehen Sie das Quellelement per Drag & Drop auf das Zielelement.
# 20) switchTo () und accept (), accept () und sendKeys ()
Die Methoden switchTo () und accept (), accept () und sendKeys () aus der Alert-Klasse wechseln zu Popup-Alerts und verarbeiten diese.
Um zu Warnungen und Popups zu wechseln und diese zu verarbeiten, verwenden wir eine Kombination aus wechseln zu() und akzeptieren (), entlassen () Methoden aus der Alert-Klasse.
Syntax:
Alert alert = driver.switchTo().alert(); alert.sendKeys('This Is Softwaretestinghelp'); alert.accept()
Erläuterung:
- Wechseln Sie zum Alarmfenster.
- Geben Sie 'This Is Softwaretestinghelp' in die Warnung ein.
- Akzeptieren Sie die Warnung und schließen Sie sie.
alert.dismiss () kann verwendet werden, um die Warnung zu schließen.
# 21) getWindowHandle () und getWindowHandles ()
getWindowHandle () und getWindowHandles () für mehrere Windows in Selenium WebDriver.
So öffnen Sie eine Bin-Datei Windows 10
Es gibt viele Fälle, in denen Webanwendungen viele Frames oder Fenster haben.
Dies sind meistens Anzeigen oder Informations-Popup-Fenster. Mit Windows-Handlern können wir mehrere Fenster verarbeiten. Webdriver speichert für jedes Fenster eine eindeutige Fenster-ID. Wir verwenden diese ID, um damit umzugehen.
Syntax:
String handle= driver.getWindowHandle(); Set handle= driver.getWindowHandles();
Die obigen Befehle werden verwendet, um Fenster-IDs des aktuellen Fensters bzw. aller Fenster abzurufen. In der folgenden Schleife sehen Sie, wie wir zu jedem Fenster für die Schleife gehen können.
for (String handle : driver.getWindowHandles()){ driver.switchTo().window(handle); }
Erläuterung:
- Wechseln Sie für jede Fensterhandle-ID aus driver.getWindowHandles () zu dieser Fenster-ID.
# 22) getConnection ()
getConnection () von DriverManager, um die Datenbankverbindung zu starten.
Um eine Datenbankverbindung herzustellen, verwenden wir getConnection aus der DriverManager-Klasse.
Syntax:
DriverManager.getConnection(URL, 'username', 'password' )
Erläuterung:
- Stellen Sie über URL und Anmeldeinformationen eine Verbindung zur Datenbank her.
# 23) DANN
POI zum Lesen aus den Excel-Dateien.
Bei datengesteuerten Tests speichern wir häufig Eingaben in einer Excel-Datei und lesen sie. Dazu importieren wir in WebDriver das POI-Paket und verwenden dann den folgenden Befehl.
Syntax:
Workbook workbook = WorkbookFactory.create(new FileInputStream(file)); Sheet sheet = workbook.getSheetAt(0);
Erläuterung:
- Erstellen Sie eine Reader-Datei.
- Lesen Sie die Datei.
# 24) assertEquals (), assertNotEquals (), assertTrue () und assertFalse ()
Asserts mit assertEquals (), assertNotEquals (), assertTrue () und assertFalse (), um die Ergebnisse zu vergleichen.
Behauptungen werden verwendet, um die erwarteten und tatsächlichen Ergebnisse zu vergleichen. Das Bestehen oder Nichtbestehen eines Tests wird normalerweise anhand des Ergebnisses von Behauptungen entschieden. In der Automatisierung werden verschiedene Arten von Assert verwendet.
Syntax:
Assert.assertEquals(message, “This text”); Assert.assertNotEquals(message, “This text”); Assert.assertTrue(result<0); Assert.assertFalse(result<0);
Erläuterung:
- Im ersten Befehl wird die Zusicherung ohne Ausnahme bestanden, wenn die erwarteten und tatsächlichen Werte gleich sind. d.h. wenn die Nachricht 'Dieser Text' ist, dann besteht die Behauptung.
- Im zweiten Befehl schlägt die Zusicherung mit einer Ausnahme fehl, wenn die erwarteten und tatsächlichen Werte gleich sind. d.h. wenn die Nachricht 'Dieser Text' ist, schlägt die Behauptung fehl.
- Wenn im dritten Befehl die Bedingung erfüllt ist, wird die Bestätigung bestanden. wenn Ergebnis<0, then the assertion passes.
- Wenn im vierten Befehl die Bedingung erfüllt ist, schlägt die Bestätigung fehl. wenn Ergebnis<0, then the assertion fails.
# 25) close () und quit ()
close () und quit (), um Fenster und Treiberinstanzen zu schließen.
Diese Befehle werden am Ende jedes Automatisierungsprogramms verwendet.
Syntax:
driver.close() driver.quit()
Erläuterung:
Der erste Befehl schließt das aktuelle Fenster.
Der zweite Befehl beendet diese Treiberinstanz und schließt jedes zugeordnete Fenster, das geöffnet wird.
Fazit
In diesem Tutorial haben wir verschiedene häufig und übermäßig häufig verwendete Befehle von WebDriver vorgestellt. Wir haben versucht, die Befehle mit geeigneten Beispielen und Codefragmenten zu erklären.
Ich habe mein Bestes versucht, um die beliebtesten WebDriver-Befehle zu erklären, die wir routinemäßig in unserer täglichen Arbeit verwenden. Mit diesen Befehlen können Sie problemlos mit Selen arbeiten.
Ich hoffe, es war interessant und kenntnisreich für Sie.
Sind Sie ein Automatisierungstester, der einen der oben genannten Befehle ausprobiert hat? Oder haben wir Befehle verpasst, die Sie in der obigen Liste verwenden?
Nächstes Tutorial Nr. 18 : Im kommenden Tutorial würden wir darüber diskutieren Webtabellen, Frames und dynamische Elemente die ein wesentlicher Bestandteil jedes Webprojekts sind. Wir werden auch die behandeln Ausnahmebehandlung Das wichtige Thema wird in einem der kommenden Selenium-Tutorials ausführlicher beschrieben.
Literatur-Empfehlungen
- Cucumber Selenium Tutorial: Integration von Cucumber Java Selenium WebDriver
- Einführung in Selenium WebDriver - Selenium Tutorial # 8
- So führen Sie Selenium WebDriver in verschiedenen gängigen Browsern aus
- Implementierung unseres ersten WebDriver-Skripts - Selenium WebDriver Tutorial # 10
- FAQs zu Selen
- Umgang mit Warnungen / Popups in Selenium WebDriver - Selenium Tutorial # 16
- GeckoDriver Selenium Tutorial: Verwendung von GeckoDriver in Selenium-Projekten
- Implizites und explizites Warten in Selenium WebDriver (Arten von Selen-Wartezeiten)