Find Element und FindElements von XPath in Selenium WebDriver

Inhaltsverzeichnis:

Anonim

Warum benötigen Sie den Befehl Element / s suchen?

Für die Interaktion mit einer Webseite muss ein Benutzer das Webelement suchen. Der Befehl "Element suchen" wird verwendet, um ein (ein) Webelement innerhalb der Webseite eindeutig zu identifizieren. Der Befehl Elemente suchen wird verwendet, um die Liste der Webelemente auf der Webseite eindeutig zu identifizieren. Es gibt mehrere Möglichkeiten, ein Webelement innerhalb der Webseite eindeutig zu identifizieren, z. B. ID, Name, Klassenname, Verknüpfungstext, partieller Verknüpfungstext, Tag-Name und XPATH.

Syntax des FindElement-Befehls:

Der Befehl Selenium Find Element verwendet das By-Objekt als Parameter und gibt ein Objekt der Typliste WebElement in Selenium zurück. Das Objekt kann wiederum mit verschiedenen Locator-Strategien verwendet werden, z. B. Suchelement nach ID Selenium, Name, Klassenname, XPATH usw. Nachfolgend finden Sie die Syntax des Befehls FindElement im Selenium-Webtreiber.

WebElement elementName = driver.findElement (By.LocatorStrategy ("LocatorValue"));

Die Locator-Strategie kann einen der folgenden Werte annehmen.

  • ICH WÜRDE
  • Selen Element nach Namen finden
  • Klassenname
  • Verlinke den Namen
  • Link Text
  • Teilweiser Linktext
  • XPATH

Der Locator-Wert ist der eindeutige Wert, mit dem ein Webelement identifiziert werden kann. Es liegt in der Verantwortung von Entwicklern und Testern, sicherzustellen, dass Webelemente anhand bestimmter Eigenschaften wie ID oder Name eindeutig identifizierbar sind.

Beispiel:

WebElement loginLink = driver.findElement (By.linkText ("Login"));

Befehlssyntax von FindElements:

Der Befehl FindElements in Selenium verwendet das Objekt By als Parameter und gibt eine Liste der Webelemente zurück. Es wird eine leere Liste zurückgegeben, wenn mit der angegebenen Locator-Strategie und dem Locator-Wert keine Elemente gefunden wurden. Unten finden Sie die Syntax des Befehls find elements.

List  elementName = driver.findElements (By.LocatorStrategy ("LocatorValue"));

Beispiel:

List  listOfElements = driver.findElements (By.xpath ("// div"));

Element suchen Vs Elemente suchen

Nachfolgend sind die Hauptunterschiede zwischen den Befehlen find element und find elements aufgeführt.

Element suchen Vs Elemente in Selen suchen
Element suchen Elemente finden
Gibt das am häufigsten verwendete Webelement zurück, wenn mehrere Webelemente mit demselben Locator gefunden wurden Gibt eine Liste von Webelementen zurück
Löst die Ausnahme NoSuchElementException aus, wenn keine Elemente vorhanden sind, die der Locator-Strategie entsprechen Gibt eine leere Liste zurück, wenn keine Webelemente vorhanden sind, die der Locator-Strategie entsprechen
Element von XPath suchen findet nur ein Webelement Es wird eine Sammlung von Elementen gefunden, die mit der Locator-Strategie übereinstimmen.
Unzutreffend Jedes Webelement wird wie ein Array mit einer Zahl ab 0 indiziert

Beispiel: Verwendung des Befehls "Element suchen"

Die folgende Anwendung wird für Demozwecke verwendet

http://demo.guru99.com/test/ajax.html

Szenario:

1. Öffnen Sie das AUT

2. Suchen Sie das Optionsfeld und klicken Sie darauf

Paket com.sample.stepdefinitions;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;öffentliche Klasse NameDemo {public static void main (String [] args) {// TODO Automatisch generierter MethodenstubSystem.setProperty ("webdriver.chrome.driver", "D: \\ 3rdparty \\ chrome \\ chromedriver.exe");WebDriver-Treiber = neuer ChromeDriver ();driver.manage (). window (). maxim ();driver.get ("http://demo.guru99.com/test/ajax.html");// Finde das Optionsfeld für "Nein" anhand seiner ID und klicke daraufdriver.findElement (By.id ("no")). click ();// Klicken Sie auf Check Buttondriver.findElement (By.id ("buttoncheck")). click ();}}}}

Beispiel: Verwendung des Befehls "Elemente suchen"

Szenario:

1. Öffnen Sie die URL für die zu testende Anwendung

2. Suchen Sie den Text der Optionsfelder und drucken Sie ihn auf die Ausgabekonsole

Paket com.sample.stepdefinitions;import java.util.List;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.chrome.ChromeDriver;öffentliche Klasse NameDemo {public static void main (String [] args) {System.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");WebDriver-Treiber = neuer ChromeDriver ();driver.get ("http://demo.guru99.com/test/ajax.html");List  elements = driver.findElements (By.name ("name"));System.out.println ("Anzahl der Elemente: + elements.size ());für (int i = 0; i 

Zusammenfassung:

  • Der Befehl "Element suchen" gibt das Webelement zurück, das dem ersten Element auf der Webseite entspricht.
  • Der Befehl Elemente suchen gibt eine Liste von Webelementen zurück, die den Kriterien entsprechen.
  • Element nach XPath im Selenium-Befehl suchen löst NoSuchElementException aus, wenn das Element nicht gefunden wird, das den Kriterien entspricht.
  • Der Befehl "Elemente suchen" gibt eine leere Liste in Selen zurück, wenn keine Elemente vorhanden sind, die den Kriterien entsprechen