In dieser Reihe von Lernprogrammen lernen wir alle umfassenden Selenium-Webdriver-Befehle kennen, angefangen von den grundlegenden Selenium-Befehlen bis hin zu den erweiterten Selenium-Webdriver-Befehlen in der folgenden Artikelreihenfolge:
Grundlegende Selenium Webdriver-Befehle - Fragen:
Zwischenselen Webdriver Befehle -Fragen:
Erweitern Sie die Selenium WebDriver-Befehle -Fragen:
Selen Grundbefehle - Antworten:

Selen navigiere zu URL:
Wenn wir in Selenium Webdriver über unseren Browser durch eine bestimmte URL navigieren oder diese öffnen möchten, können wir dies auf zwei verschiedene Arten tun: mit der Methode get () und mit der Methode navigieren. Wir werden uns ansehen, wie dies sein könnte getan :
public void getUrl (String url) { try { driver.get (url); BASE_LOGGER.info("Erfolgreich zur URL navigiert als: " + url); } catch (Exception ex) {String exceptionData = ex.getCause().getMessage(); BASE_LOGGER.error("Zur URL kann nicht navigiert werden: " + url + " mit dem Fehler: " + exceptionData); } }
Der Code, den Sie zum Navigieren in der URL schreiben können, lautet driver.get ("http://example.com"), während der Treiber die Webdriver-Instanz der Selenium WebDriver-Oberfläche ist.
Besuchen Sie hier, um zu verstehen, wie Sie alle Browser in Selenium starten.
Wie funktioniert die get-Methode intern in Selen:
Sobald diese get () -Methode von Ihrem Testskript aufgerufen wird, wartet die Webdriver-Referenz, dh der Treiber, bis die Seite geladen ist, tatsächlich wird die get () -Methode intern ausgelöst Onload-Funktion Dadurch wird das Handle an Ihre Treiberreferenz zurückgegeben, sobald die Seite vollständig geladen ist.
Selen navigieren vorwärts und rückwärts:
Ein anderer Ansatz zum Navigieren zur URL mit dem Browserverlauf ist die Verwendung der navig () -Methode, bei der Selenium den Verlauf des Browsers verwendet, um mit Ihren jeweiligen URLs vorwärts oder rückwärts zu navigieren, z.
Selen navigiert vorwärts
public void NavigierenForward () {Versuch {driver.navigate().forward (); BASE_LOGGER.info("Erfolgreich vorwärts navigiert" ); } catch (Exception ex) {String exceptionData = ex.getCause().getMessage(); BASE_LOGGER.error("Navigation nicht möglich mit dem Fehler: " + exceptionData); } }
Selen navigieren Zurück:
public void NavigateBack () { try { driver.navigate (). back (); BASE_LOGGER.info("Erfolgreich zurück zur URL navigiert"); } catch (Exception ex) {String exceptionData = ex.getCause().getMessage(); BASE_LOGGER.error("Zurück zu URL kann nicht navigiert werden: mit dem Fehler: " + exceptionData); } }
Selen-Aktualisierungsseite
Wir können die refresh () -Methode von Selenium navigieren
public void seleniumRefreshPage() { try {driver.navigate().refresh(); BASE_LOGGER.info("Selenium-Aktualisierungsseite erfolgreich abgeschlossen"); } catch (Exception ex) {String exceptionData = ex.getCause().getMessage(); BASE_LOGGER.error("Selenium Refresh Page kann nicht ausgeführt werden: mit dem Fehler: " + exceptionData); } }
Selen klicken
Um eine Klickoperation mit Selenium-Klick auszuführen, müssen wir im folgenden Ansatz die Methode click () verwenden. Es gibt andere Möglichkeiten, eine Klickoperation für ein WebElement in Selenium durchzuführen, z. B. mithilfe von JavaScriptClick, was je nach Situation manchmal sehr nützlich ist Wenn Ihre normale Selenium-Klickmethode sehr stabil funktioniert, gibt es einige Fälle, in denen die normale Selenium-Klickmethode möglicherweise nicht funktioniert, wenn Sie mit dem IE-Browser automatisieren und wenn die zu testende Webanwendung in einer Art Bootstrap-JS erstellt wird In diesem Fall können Sie die Javascript-Klickmethode verwenden.
public void safeClick(By element) {try {driver.findElement(element).click(); BASE_LOGGER.info("Safeclick-Operation wurde für den Locator durchgeführt: " + String.valueOf(element)); } catch (Ausnahme e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Fehler aufgetreten, dh: " + exceptionData + " beim Ausführen von Safeclick auf das Element: " + element); } }
Sie können das Element mit verschiedenen Locator-Strategien (z. B. xpath, name, css usw.) in der Methode findElement () übergeben und dann die Operation click () wie oben ausführen.
Selen Sendkeys
Wenn wir über Selen Text in ein Textfeld eingeben müssen, verwenden wir die Selenium sendkeys () -Methode, indem wir den "einzugebenden Text" als Parameter in der Methode sendKeys ("einzugebender Text") und ähnlich übergeben Die click () -Methode Diese Methode wird auch auf jedes webElement (hier Webtextfeld) angewendet. Daher müssen wir driver.findElement verwenden, um den Text an diese TextBox zu senden.
Der Beispielcode lautet wie folgt:
public void enterTextIntoElement(By element, String textToBeEntered) { try { driver.findElement(element).sendKeys(textToBeEntered); BASE_LOGGER.info( "enterTextIntoElement-Operation wurde für den Locator durchgeführt: " + String.valueOf(element)); } catch (Exception ex) {String exceptionData = ex.getCause().getMessage(); BASE_LOGGER.error("enterTextIntoElement-Operation ist für den Locator fehlgeschlagen: " + String.valueOf(element) + " mit der Ausnahme, dh: " + exceptionData); } }
Selen Klartextfeld
Wenn wir Daten aus einem zuvor ausgefüllten Textfeld löschen möchten, können wir die Methode clear () verwenden und dies auch mithilfe der Schlüsselklasse in Selen tun, über die wir die Tastaturoperationen direkt zusammen mit Tastaturkürzeln ausführen können ::
Um die Daten mit Hilfe der clear () -Methode zu löschen, können wir wie folgt schreiben:
public void clearField(By element) {try {driver.findElement(element).clear(); BASE_LOGGER.info("ClearField-Operation wurde für den Locator durchgeführt: " + String.valueOf(element)); } catch (Ausnahme e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("ClearField-Operation ist für den Locator fehlgeschlagen: " + String.valueOf(element) + " mit der Ausnahme, dh: " + exceptionData); } }
Mit der Keys-Klasse können wir auch die Textfelder im folgenden Ansatz löschen.
Selen maximieren Fenster
Wenn wir während der Arbeit mit der Browser-Automatisierung das Fenster in Selen maximieren müssen, können wir die folgenden Ansätze verwenden:
Selenium Maximize Window mit der Maximize () -Methode:
öffentliches Void maximierenWindow () { Versuch { Treiber.manage (). Fenster (). maximieren (); BASE_LOGGER.info("Fenster erfolgreich maximiert"); } catch (Exception e) { BASE_LOGGER.info("Exception beim Maximieren des Fensters als aufgetreten: " + e.getCause().getMessage()); } }
Selenium Maximize Window mithilfe von ChromeOptions für ChromeBrowser:
Mit der folgenden Methode setzen wir eine Chrome-Browser-Instanz für Webdriver in den maximierten Modus und die zurückgegebene Treibersitzung wird für den weiteren Webbetrieb gemäß dem Skript mit derselben Funktion (dh Fenster maximieren) fortgesetzt.
public WebDriver openBrowserInMaximizeWindow(){ try {ChromeOptions options = new ChromeOptions(); options.addArguments("start-maximiert"); WebDriver-Treiber = neuer ChromeDriver (Optionen); }catch(Exception e){ BASE_LOGGER.error("Ausnahme aufgetreten bei: " + e.getCause().getMessage()); } Rückgabetreiber; }
Selen minimieren Fenster
Wir können das Fenster mit dem Befehl Selenium minimieren () mit dem folgenden Ansatz minimieren:
public void minimWindow() {try {driver.manage().window().minimize(); BASE_LOGGER.info("Fenster erfolgreich minimiert"); } catch (Exception e) { BASE_LOGGER.info("Exception beim Minimieren des Fensters aufgetreten als: " + e.getCause().getMessage()); } }
Selenium Browser schließen:
Um den Browser in Selenium zu schließen, verwenden wir die Methode close () im folgenden Ansatz:
public void closeCurrentWindow() { try { if (null != driver) { driver.close(); BASE_LOGGER.info("Aktuelles Fenster/Browser erfolgreich geschlossen"); } Else { BASE_LOGGER.info ("Die aktuelle Fenster-/Browserinstanz kann nicht geschlossen werden, da sie NULL ist"); } } catch (Exception e) { BASE_LOGGER.info("Exception beim Schließen des aktuellen Fensters/Browsers aufgetreten"); } }
Selenium Browser beenden
Um alle Browserinstanzen in Selenium zu beenden, verwenden wir die Methode quit () im folgenden Ansatz:
public void quitBrowser() { try { if (null != driver) { driver.quit(); BASE_LOGGER.info("Browser erfolgreich BEENDEN"); } Else {BASE_LOGGER.info("Der Browser kann nicht beendet werden, da er NULL ist"); } } catch (Ausnahme e) { BASE_LOGGER.error("Ausnahme beim BEENDEN des Browsers aufgetreten"); } }
Unterschied zwischen driver.close () und driver.quit () in Selen:
Intermediate Selenium Webdriver Befehle - Antworten:
Dropdown in Selen:
In der Webseiten-DOM-Struktur wird das Dropdown-Menü entweder durch Auswählen oder Eingeben von HTML-Tagen implementiert. Um mit Dropdown mit Selenium zu arbeiten und bestimmte Aufgaben auszuführen
Bei Weboperationen in den Dropdowns müssen wir die Klasse "Select" aus der Selenium WebDrivers-API als Teil von "Select" verwenden.org.openqa.selenium.support.ui.”Paket von Selenium WebDriver.
Bei der Arbeit mit der Auswahl von DropDown in Selen gibt es zwei verschiedene Problemstellungen oder Fragen:
Auswahl eines einzelnen Elements in einem Dropdown-Menü
Im folgenden Ansatz können wir mit Dropdown arbeiten:
Schritt eins :
Sie müssen ein Handle für das DropDown-WebElement mithilfe der Select Object-Objekterstellung auf folgende Weise erstellen:
Select select = new Select (WebElement-Webelement);
Schritt zwei :
Es gibt 3 verschiedene Ansätze, um den Wert aus der Dropdown-Liste in Selen auszuwählen. Wir können eine der folgenden Methoden verwenden, um den Wert aus der Dropdown-Liste in Selen auszuwählen:
Hier ist der folgende Ansatz, mit dem wir einen Wert aus Dropdown auswählen können:
Dropdown in Selen - Ansatz Eins:
Im Ansatz Eins können Sie die verwenden Text, der sichtbar ist der gewünschten Auswahl des Webelements.
public void selectFromDropDownByText(By locator, String visibleText) {try { Select dropDownElement = new Select(driver.findElement(locator)); dropDownElement.selectByVisibleText(sichtbarerText); BASE_LOGGER.info("SelectFromDropDownByText-Operation wurde für den Locator durchgeführt: " + String.valueOf(locator)); } catch (Ausnahme e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Fehler aufgetreten, dh: " + exceptionData + " beim Durchführen von selectFromDropDownByText für das Element: " + locator); } }
Bei der obigen Methode können Sie den Locator der Dropdown-Liste übergeben. Der sichtbare Text, den Sie aus der Dropdown-Liste auswählen möchten, führt die gewünschte Operation aus. Wählen Sie das erwartete Dropdown-Element aus.
Dropdown in Selen - Ansatz Zwei:
In diesem Ansatz wählen Sie das Webelement aus, indem Sie das value-Attribut der gewünschten WebElement-Auswahl aus der Dropdown-Liste verwenden:
public void selectFromDropDownByValue(By locator, String visibleText) {try { Select dropDownElement = new Select(driver.findElement(locator)); dropDownElement.selectByValue(“Gewünschter Wert des Webelements”); BASE_LOGGER.info("selectFromDropDownByValue-Operation wurde für den Locator durchgeführt: " + String.valueOf(locator)); } catch (Ausnahme e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Fehler aufgetreten, dh: " + exceptionData + " beim Durchführen von selectFromDropDownByValue für das Element: " + locator); } }
Bei der obigen Methode können Sie den Locator der Dropdown-Liste und das Wertattribut des WebElements übergeben, das Sie aus der Dropdown-Liste auswählen möchten. Anschließend wird die gewünschte Operation ausgeführt. Wählen Sie das erwartete Dropdown-Element aus.
Dropdown in Selen - Ansatz Drei:
In diesem Ansatz wählen Sie das Webelement aus, indem Sie den Index (Reihenfolge des WebElements im HTML-Auswahl-Tag) der gewünschten WebElement-Auswahl aus der Dropdown-Liste verwenden. Der Index beginnt im Allgemeinen bei 0:
public void selectFromDropDownByIndex(By locator, String visibleText) {try { Select dropDownElement = new Select(driver.findElement(locator)); dropDownElement.selectByIndex(5); BASE_LOGGER.info("selectFromDropDownByIndex-Operation wurde für den Locator durchgeführt: " + String.valueOf(locator)); } catch (Ausnahme e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Fehler aufgetreten, dh: " + exceptionData + " beim Ausführen von selectFromDropDownByIndex für das Element: " + locator); } }
Bei der obigen Methode können Sie den Locator des Dropdowns und den Index / die Reihenfolge des WebElements (im Select-Tag des Dropdowns) übergeben, von dem Sie aus dem Dropdown auswählen möchten. Anschließend wird der gewünschte Vorgang ausgeführt: Wählen Sie das erwartete Dropdown-Element aus .
Auswahl mehrerer Elemente in einem Dropdown gleichzeitig
Es hängt von der HTML-DOM-Struktur und -Implementierung ab, ob ein Dropdown-Element eine Mehrfachauswahl von Elementen haben darf. Um mehrere Elemente in Selen auszuwählen, müssen wir die folgenden zwei Schritte ausführen:
Schritt eins : Überprüfen Sie mithilfe der Methode, ob das DropDown-WebElement die Mehrfachauswahl zulässt isMultiple (), Dies gibt den Booleschen Wert als wahr oder falsch zurück.
Schritt zwei : Wenn der obige Schritt true zurückgibt, ermöglicht das Dropdown eine Mehrfachauswahl. Danach können wir die oben beschriebenen drei verschiedenen Ansätze verwenden, um mehrere Werte auszuwählen und alle gewünschten Operationen auszuführen.
Zum Abschluss hier unten der folgende Beispielcode:
WebElement element =driver.findElement(By.xpath("XPATH OF THE DropDown")); Select selectMultiple = new Select(element); if(selectMultiple.isMultiple()){ selectMultiple.selectByIndex(1); selectMultiple.selectByIndex(2); //In ähnlicher Weise könnten wir andere Ansätze/Methoden zum Auswählen von Dropdown-Elementen verwenden, wie z. B. selectByVisibleText oder selectByValue }
Ziehen Sie Selen per Drag & Drop ein :
Im Abschnitt des Tutorials lernen wir die verschiedenen Ansätze zum Ausführen von Drag & Drop in Selen kennen, wie zum Beispiel:
Was ist Drag & Drop in Selen und wo wird es verwendet:
Drag & Drop ist eine bestimmte Operation, wenn Benutzer zu Ihren Webanwendungen navigieren und versuchen, eine Operation (Ziehen mit der Maus) an einem Webelement auszuführen, das sich frei über die Anwendung bewegen und an einer anderen Stelle der Webseite dieser Anwendung abgelegt werden kann.
Hier wird das Element, das gezogen wird, als Quell-WebElement bezeichnet, und das Element, in dem es abgelegt wird, wird als Ziel-WebElement bezeichnet.
Um die oben genannten Szenarien über die Automatisierung mit Selen auszuführen, müssen die von Selen bereitgestellten Funktionen per Drag & Drop verschoben werden.
Verschiedene Drag & Drop-Ansätze in Selen:
Drag & Drop in Selen mit der Build () -Methode:
Wie die Build () -Methode intern funktioniert :
build () -Methode aus der Actions-Klasse in Selenium, die Teil des Pakets ist org.openqa.selenium.interactions. generiert intern eine zusammengesetzte Aktion
durch Kombinieren aller Aktionen, die vor dem Aufrufen der build () -Methode aufgerufen oder ausgelöst wurden.
Zum Beispiel :
neue Actions(driver).clickAndHold(sourceElement).moveToElement(destinationElement) .release(destinationElement).build();
Die obige Anweisung zum Ausführen einer Drag & Drop-Operation wird verwendet, um die vorherigen Aktionen wie clickAndHold-, moveToElement- und Release-Methoden zu binden.
Hier ist das folgende Codefragment, um das Drag & Drop in Selen mithilfe der Erstellungsmethode der Actions-Klasse durchzuführen:
public void dragAndDrop (Nach Quelle, Nach Ziel) { try { WebElement sourceElement = driver.findElement (source); WebElement destinationElement = driver.findElement(destination); Aktionsgenerator = neue Aktionen (Treiber); Aktion dragAndDrop = builder.clickAndHold(sourceElement).moveToElement(destinationElement) .release(destinationElement).build(); dragAndDrop.perform(); BASE_LOGGER.info("Drag-and-Drop-Aktion erfolgreich durchgeführt"); } catch (Ausnahme e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Fehler aufgetreten, dh: " + exceptionData + " beim Ausführen von DragAndDrop "); } }
Drag & Drop in Selen mit der dragAndDrop () -Methode:
So funktioniert die dragAndDrop () -Methode intern:
Die Methode dragAndDrop (sourceWebElement, destinationWebElement) verwendet grundsätzlich zwei Argumente, eines als Quelle und eines als Zielwebelement.
dragAndDrop beseitigt die Notwendigkeit von clickAndHold, moveToElement, Freigabemethoden in der Action-Klasse, behandelt intern alle Szenarien, die von diesen Methoden ausgeführt werden.
Hier ist das folgende Codefragment zum Ausführen von dragAndDrop mit der Methode dragAndDrop:
public void dragAndDropOps(By source, By destination) { try { WebElement sourceElement = driver.findElement(source); WebElement destinationElement = driver.findElement(destination); Aktionsgenerator = neue Aktionen (Treiber); builder.dragAndDrop(sourceElement,destinationElement).perform(); BASE_LOGGER.info("Drag-and-Drop-Aktion erfolgreich durchgeführt"); } catch (Ausnahme e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Fehler aufgetreten, dh: " + exceptionData + " beim Ausführen von DragAndDrop "); } }
Drag & Drop in Selen mit der dragAndDropBy () -Methode:
So funktioniert die Methode dragAndDropBy (WebElement-Quelle, int xOffset, int yOffset) intern:
Die Methode dragAndDropBy () akzeptiert drei Argumente:
Quell-WebElement: Das Element, das gezogen wird, dh das Quellelement
xOffset: Horizontaler Verschiebungsversatz des Zielorts
yOffset: vertikaler Verschiebungsversatz des Zielorts
Intern nimmt diese Methode das Quell-Webelement und verschiebt es und gibt es an den Zielort frei. Diese Methode ist nützlich, wenn Sie ein Quellwebelement an eine beliebige Pixelposition verschieben möchten.
Unten finden Sie das Code-Snippet für DragAndDropBy in Selen:
public void dragAndDropByOps (By source, int xOffSet, int yOffSet) { try { WebElement sourceElement = driver.findElement (source); Aktionsgenerator = neue Aktionen (Treiber); builder.dragAndDropBy(sourceElement,xOffSet,yOffSet).build().perform(); BASE_LOGGER.info("Drag-and-Drop-Aktion erfolgreich durchgeführt"); } catch (Ausnahme e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Fehler aufgetreten, dh: " + exceptionData + " beim Ausführen von DragAndDrop "); } }
Besuchen Sie hier den Rest der erweiterten Sätze von Intermediate Selenium-Webdriver-Befehlen.
Erweitern Sie die Selenium WebDriver-Befehle -Antworten:
Doppelklicken Sie in Selen :
Um die Operation zu replizieren, dh einen Doppelklick in Selen mit der Maus auszuführen, müssen Sie einen Doppelklick über die Actions-Klasse in Selen durchführen. Dies können Sie wie folgt tun:
public void doubleClick(By locator) {try { WebElement element = driver.findElement(locator); Aktionen Aktionen = neue Aktionen (Treiber); Aktionen.doubleClick(element).perform(); BASE_LOGGER.info("Doppelklick auf das Element durchgeführt: " + Locator); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("Element ist nicht an das Seitendokument angehängt" + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Element " + locator + " was not found in DOM " + e.getCause().getMessage()); } catch (Exception e) { BASE_LOGGER.error("Element " + Locator + " war nicht anklickbar " + e.getCause().getMessage()); } }
Das obige Code-Snippet ist eine Methode, die im Grunde genommen ein Argument als Locator verwendet, dh das WebElement, auf das der Doppelklick ausgeführt werden muss.
Kontextklick in Selen:
Um die Kontextklick- oder Rechtsklickoperation per Maus zu replizieren, müssen Sie die Kontextklickmethode über die Actions-Klasse in Selen ausführen. Dies können Sie wie folgt tun:
public void rightClick(By locator) { try {WebElement element = driver.findElement(locator); Aktionen Aktionen = neue Aktionen (Treiber); Aktionen.contextClick(element).perform(); BASE_LOGGER.info("Der Kontext wurde ausgeführt. Klicken Sie auf das Element: " + Locator); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("Element ist nicht an das Seitendokument angehängt" + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Element " + locator + " was not found in DOM " + e.getCause().getMessage()); } catch (Exception e) { BASE_LOGGER.error("Element " + Locator + " war nicht anklickbar " + e.getCause().getMessage()); } }
Die detaillierten Advance Selenium Webdriver-Befehle finden Sie hier Aktionsklasse in Selen und seine Implementierungen besuchen Sie hier .
Kritische FAQs:
Was ist manage () in Selen?
driver.manage () gibt einen Verweis auf die Implementierung von WebDriver.Options Interface zurück. Die Schnittstelle Opptions ist eine Schnittstelle zum Verwalten und Behandeln von Aktionen in einem Browsermenü wie:
Für erschöpfende Sätze von Fragen zum Selen-Interview - Kritische und fortgeschrittene Sets finden Sie hier.
Fazit:
In diesem Abschnitt des Tutorials haben wir die Grundlagen behandelt Selen Webdriver Befehle, Klicken Sie hier, um die zu lernen Intermediate- und Advance Selenium-Webdriver-Befehle. Um Selen von Grund auf neu zu lernen, klicken Sie hier.