Selen - Locators

Das Auffinden von Elementen in Selenium WebDriver erfolgt mithilfe der Methoden findElement () und findElements (), die von den Klassen WebDriver und WebElement bereitgestellt werden.

  • findElement () gibt ein WebElement-Objekt basierend auf einem angegebenen Suchkriterium zurück oder löst eine Ausnahme aus, wenn kein Element gefunden wird, das den Suchkriterien entspricht.

  • findElements () gibt eine Liste von WebElements zurück, die den Suchkriterien entsprechen. Wenn keine Elemente gefunden werden, wird eine leere Liste zurückgegeben.

In der folgenden Tabelle sind alle Java-Syntax zum Suchen von Elementen in Selenium WebDriver aufgeführt.

Methode Syntax Beschreibung
Nach ID driver.findElement (By.id (<Element-ID>)) Findet ein Element mithilfe des ID-Attributs
Namentlich driver.findElement (By.name (<Elementname>)) Findet ein Element mithilfe des Namensattributs
Nach Klassennamen driver.findElement (By.className (<Elementklasse>)) Findet ein Element mithilfe des Class-Attributs
Nach Tag-Namen driver.findElement (By.tagName (<htmltagname>)) Findet ein Element mithilfe des HTML-Tags
Per Linktext driver.findElement (By.linkText (<linktext>)) Findet einen Link mithilfe des Linktexts
Durch partiellen Linktext driver.findElement (By.partialLinkText (<linktext>)) Findet einen Link anhand des Teiltextes des Links
Per CSS driver.findElement (By.cssSelector (<css-Selector>)) Findet ein Element mithilfe des CSS-Selektors
Mit XPath driver.findElement (By.xpath (<xpath>)) Findet ein Element mithilfe der XPath-Abfrage

Verwendung der Locators

Lassen Sie uns nun die praktische Anwendung jeder der Locator-Methoden mit Hilfe von verstehen https://www.calculator.net

Nach ID

Hier wird mit Hilfe von IDs auf ein Objekt zugegriffen. In diesem Fall ist es die ID des Textfelds. Werte werden mit der sendkeys-Methode mit Hilfe von ID (cdensity) in das Textfeld eingegeben.

driver.findElement(By.id("cdensity")).sendKeys("10");

Namentlich

Hier wird mit Hilfe von Namen auf ein Objekt zugegriffen. In diesem Fall ist es der Name des Textfelds. Werte werden mit der sendkeys-Methode mit Hilfe von ID (cdensity) in das Textfeld eingegeben.

driver.findElement(By.name("cdensity")).sendKeys("10");

Nach Klassennamen

Hier wird mit Hilfe von Klassennamen auf ein Objekt zugegriffen. In diesem Fall ist dies der Klassenname des WebElement. Auf den Wert kann mit Hilfe der Methode gettext zugegriffen werden.

List<WebElement> byclass = driver.findElements(By.className("smalltext smtb"));

Nach Tag-Namen

Der DOM-Tag-Name eines Elements kann verwendet werden, um dieses bestimmte Element im WebDriver zu lokalisieren. Mit dieser Methode ist es sehr einfach, Tabellen zu handhaben. Schauen Sie sich den folgenden Code an.

WebElement table = driver.findElement(By.id("calctable"));
List<WebElement> row = table.findElements(By.tagName("tr"));
int rowcount = row.size();

Durch Linktext

Diese Methode hilft beim Auffinden eines Linkelements mit übereinstimmendem sichtbarem Text.

driver.findElements(By.linkText("Volume")).click();

Durch partiellen Linktext

Diese Methode hilft beim Auffinden eines Verknüpfungselements mit teilweise übereinstimmendem sichtbarem Text.

driver.findElement(By.partialLinkText("Volume")).click();

Per CSS

Das CSS wird als Methode zur Identifizierung des Webobjekts verwendet, jedoch unterstützen NICHT alle Browser die CSS-Identifizierung.

WebElement loginButton = driver.findElement(By.cssSelector("input.login"));

Mit XPath

XPath steht für XML-Pfadsprache. Es ist eine Abfragesprache zum Auswählen von Knoten aus einem XML-Dokument. XPath basiert auf der Baumdarstellung von XML-Dokumenten und bietet die Möglichkeit, durch Auswahl von Knoten anhand verschiedener Kriterien im Baum zu navigieren.

driver.findElement(By.xpath(".//*[@id = 'content']/table[1]/tbody/tr/td/table/tbody/tr[2]/td[1]/input")).sendkeys("100");