XPath-i abil FindElement Selenium
โก Nutikas kokkuvรตte
XPath-i abil FindElement Selenium identifitseerib lehel รผhe veebielemendi unikaalselt, samas kui FindElements tagastab sobivate elementide tรคieliku loendi. Mรตlemad kรคsud aktsepteerivad By locator objekti, mis hรตlmab ID, Name, Class Name ja XPath strateegiaid.
In Selenium Veebidraiver FindElement ja FindElements on pรตhikรคsklused, mida kasutatakse veebielementide leidmiseks lehel enne mis tahes toimingu tegemist, nรคiteks klรตpsamist vรตi teksti sisestamist.
Miks vajate kรคsku Otsi element(id)?
Veebilehega suhtlemiseks peab kasutaja kรตigepealt veebielemendi leidma. Kรคsku โLeia elementโ kasutatakse veebilehel รผhe veebielemendi unikaalseks tuvastamiseks, kรคsku โLeia elemendidโ aga veebielementide loendi tuvastamiseks. Elementi saab tuvastada mitme abil. lokaliseerimisstrateegiad nรคiteks ID, nimi, klassi nimi, lingi tekst, osaline lingi tekst, sildi nimi ja XPath.
FindElement kรคsu sรผntaks
Allpool on FindElement kรคsu sรผntaks keeles Selenium Veebidraiver:
WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));
Kรคsk FindElement vรตtab parameetriks objekti By ja tagastab รผhe objekti tรผรผbiga WebElement. Objekti By saab omakorda kasutada koos erinevate lokaliseerimisstrateegiatega, nรคiteks ID, nimi, klassi nimi, XPath jne.
Lokaatori strateegia vรครคrtusteks vรตivad olla jรคrgmised:
- ID
- Eesnimi
- Klassi nimi
- Sildi nimi
- tekst link
- Osaline lingi tekst
- XPath
Lokaatori vรครคrtus on unikaalne vรครคrtus, mille abil saab veebielementi tuvastada. Arendajate ja testijate kohustus on tagada, et veebielemente saaks teatud omaduste, nรคiteks ID vรตi nime abil รผheselt tuvastada.
Nรคide:
WebElement loginLink = driver.findElement(By.linkText("Login"));
Nรคide: otsige elementi Selenium
FindElement kรคsu toimimise demonstreerimiseks kasutatakse jรคrgmist demorakendust:
https://demo.guru99.com/test/ajax.html
Stsenaarium:
Samm 1: Avage AUT
Samm 2: Leidke ja klรตpsake raadionuppu ning seejรคrel klรตpsake nuppu Kontrolli
package com.sample.stepdefinitions;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class NameDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.setProperty("webdriver.chrome.driver", "D:\\3rdparty\\chrome\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://demo.guru99.com/test/ajax.html");
// Find the radio button for โNoโ using its ID and click on it
driver.findElement(By.id("no")).click();
//Click on Check Button
driver.findElement(By.id("buttoncheck")).click();
}
}
FindElementsi kรคsu sรผntaks
Kui vajate kรตiki lokaatorile vastavaid elemente, mitte ainult esimest, kasutage funktsiooni FindElements. Selle sรผntaks on jรคrgmine:
List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));
Kรคsk FindElements vรตtab parameetriks objekti By ja tagastab veebielementide loendi. See tagastab tรผhja loendi, kui antud lokaatori strateegia ja vรครคrtuse abil elemente ei leitud.
Nรคide:
List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));
Nรคide: otsige elemente Selenium
Sama demorakendust kasutatakse selleks, et nรคidata, kuidas FindElements itereerib sobivate elementide loendi รผle.
Stsenaarium:
Samm 1: avage URL testitava rakenduse jaoks
Samm 2: Leia raadionuppude tekst ja prindi see vรคljundkonsoolile
package 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;
public class NameDemo {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "X://chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://demo.guru99.com/test/ajax.html");
List<WebElement> elements = driver.findElements(By.name("name"));
System.out.println("Number of elements:" +elements.size());
for (int i=0; i<elements.size();i++){
System.out.println("Radio button text:" + elements.get(i).getAttribute("value"));
}
}
}
Leia element vs Leia elemendid
Allpool on toodud peamised erinevused kรคskude โLeia elementโ ja โLeia elemendidโ vahel:
| Leidke element | Otsige elemente |
|---|---|
| Tagastab esimese veebielemendi, kui sama lokaatoriga on leitud mitu veebielementi. | Tagastab veebielementide loendi |
| Viskab erandi NoSuchElementException, kui lokaatori strateegiale vastavaid elemente pole. | Tagastab tรผhja loendi, kui lokaatoristrateegiale vastavaid veebielemente pole |
| XPathi abil elemendi leidmise funktsioon leiab ainult รผhe veebielemendi | See leiab lokaatori strateegiale vastavate elementide kogumi. |
| Ei kasuta | Iga veebielement indekseeritakse numbriga, mis algab nullist, nagu massiivi puhul. |


