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");