Lokalisierer in Selenium WebDriver

Lokalisierer in Selenium WebDriver
MIN
24 Nov. 2023

In diesem Artikel werden wir unser Selenium-Tutorial fortsetzen und die verschiedenen Arten von Locators untersuchen, die in Selenium verfügbar sind. Bevor wir uns mit Ortungsgeräten befassen, sollten wir zunächst die Notwendigkeit von Ortungsgeräten im Automatisierungsprozess prüfen.

Einen einfachen Automatisierungsprozess in Selenium kann man sich wie folgt vorstellen:

  • Starten Sie den Browser.
  • Öffnen Sie die gewünschte Webseite, die automatisiert werden soll.
  • Lokalisierung von Web-Elementen wie z. B. Textfeldern.
  • Führen Sie Operationen an Webelementen durch, z. B. das Schreiben in ein Textfeld.
  • Behauptungen wie die „Erfolgsmeldung“.

Sehen wir uns ein Codebeispiel an, das den obigen Prozess implementiert. Wir werden die einzelnen Codezeilen im folgenden Text untersuchen.

Inhaltsübersicht

Beispielcode für Locatoren in Selenium WebDriver

//Start des Firefox-Browsers

WebDriver driver = new FirefoxDriver();

//Öffnen von google.com

driver.get(„http://www.google.com“);

//Initialisierung des Webelements searchBox

WebElement searchBox = driver.findElement(By.name(„q“));

//Schreiben eines Textes „ITtester“ in das Suchfeld

searchBox.sendKeys(„ITtester“);

Hier sehen wir also, dass wir, wenn wir eine Operation an einem Web-Element – searchBox – durchführen wollen, dieses zuerst lokalisieren müssen. Hier ist der By.name(„q“) locator, der bei Übergabe an die findElement-Methode ein searchBox-Web-Element zurückgibt.

Bevor wir die verschiedenen Arten von Locators, die in Selenium zur Verfügung stehen, weiter erörtern, wollen wir uns zunächst ansehen, wie man die verschiedenen Elementattribute erhält, die in Locators verwendet werden.

Verwendung des Entwickler-Tools

Die Lokalisierung von Webelementen erfordert die Kenntnis ihrer HTML-Attribute. Wir können das eingebaute Entwickler-Tool verwenden, um den HTML-Quellcode bestimmter Elemente abzurufen (durch Drücken von f12 im Browser oder Umschalt+Strg+I).

Schritte, um die Attribute eines HTML-Elements zu finden:

  • Starten Sie die zu automatisierende Webseite, z. B. https://www.google.com
  • Drücken Sie F12 (oder Umschalt+Strg+I), um das Entwickler-Tool zu starten.
  • Klicken Sie auf das Symbol „Element inspizieren“, wie in der Abbildung unten dargestellt.
Screenshot des geöffneten Entwickler-Tools im Browser
Das Developer Tool ist ein effizientes und praktisches Werkzeug zum Reparieren oder Überprüfen von Webelementen.

Klicken Sie nach dem Klick auf das Symbol „Element inspizieren“ auf das Webelement, das Sie lokalisieren möchten, z. B. Google-Suchfeld. Wenn Sie auf ein Element klicken, wird sein HTML-Code in der Firebug-Benutzeroberfläche angezeigt.

Screenshot des im Browser geöffneten Developer Tools
Die einfache Oberfläche des Developer Tools zeigt Ihnen wichtige Attribute und Werte an.

Hier sehen wir verschiedene Attribute von Webelementen wie id, type, role usw. zusammen mit ihren Tags wie input, div usw. Wir werden nun diese Tags, Attribute und Werte verwenden, um mit verschiedenen Locators nach Elementen zu suchen.

Selen-Ortungsgeräte

Es gibt insgesamt 8 Locators in Selenium WebDriver:

  1. Nach Id – Lokalisiert das Element anhand des id-Attributs des Web-Elements.

WebElement element = driver.findElement(By.id(„elementId“));

  1. Nach Klassenname – ruft das Webelement anhand des Attributs Klassenname ab.

WebElement element = driver.findElement(By.className(„objectClass“));

  1. Nach TagName – Sucht nach einem Web-Element anhand seines HTML-Tags, z. B. div, a, input usw.

WebElement element = driver.findElement(By.tagName(„a“));

  1. Nach Name – sucht nach einem Webelement anhand des Namensattributs.

WebElement element = driver.findElement(By.name(„male“));

  1. By linkText – Sucht nach einem Webelement vom Typ Link anhand seines Textes.

WebElement element = driver.findElement(By.linkText(„Hier klicken“));

  1. By partialLinkText – Sucht nach einem Web-Element des Link-Typs mit einer partiellen Textübereinstimmung.

WebElement element = driver.findElement(By.partialLinkText(„Click“));

  1. By cssSelector – Sucht nach einem Web-Element mit CSS.

WebElement element = driver.findElement(By.cssSelector(„div#id“));

  1. Nach XPath – Sucht nach einem Webelement anhand seines XPaths.

WebElement element = driver.findElement(By.xpath(„//div[@id=’id‘]“));

Sie haben nun erfolgreich gelernt, wie Sie Elemente in Selenium finden können. Wie Sie sehen können, ist das Auffinden von Elementen nach id, className, tagName, name, linkText und partialLinkText einfach.

Wir müssen nur den richtigen Locator auf der Grundlage der Einzigartigkeit des Elements auswählen, z. B. Wir bevorzugen die Verwendung von IDs, da Element-IDs im Allgemeinen eindeutig sind. Es kann jedoch Szenarien geben, in denen wir nicht über die id-Attribute des Web-Elements verfügen und auch andere Locatoren, wie name und className, das angeforderte Web-Element nicht eindeutig abrufen können. In solchen Fällen sollten wir CSS-Selektoren und XPath-Locators verwenden.

Diese Locators sind sehr leistungsfähig und helfen bei der Erstellung robuster Locators für komplexe Webelemente.