XPath-i abil FindElement Selenium

Miks vajate kรคsku Otsi element(id)?

Veebilehega suhtlemine nรตuab, et kasutaja tuvastaks veebielemendi asukoha. Otsi elementi kasutatakse (รผhe) veebielemendi unikaalseks tuvastamiseks veebilehel. Seevastu kรคsku Otsi elemente kasutatakse veebilehel olevate veebielementide loendi unikaalseks tuvastamiseks. Veebielemendi unikaalseks tuvastamiseks veebilehel on mitu vรตimalust, nรคiteks ID, nimi, klassi nimi, lingi tekst, osaline lingi tekst, sildi nimi ja XPATH.

FindElement kรคsu sรผntaks

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

Selenium Kรคsk Find Element vรตtab parameetrina sisse objekti By ja tagastab objekti tรผรผbiloendiga WebElement in Selenium. Objekti jรคrgi saab omakorda kasutada erinevate lokaatoristrateegiatega, nรคiteks elemendi leidmine ID jรคrgi Selenium, nimi, klassi nimi, XPATH jne. Allpool on kรคsu FindElement sรผntaks Selenium veebidraiver.

Lokaatori strateegia vรตib olla mis tahes jรคrgmistest vรครคrtustest.

  • ID
  • Selenium otsi element nime jรคrgi
  • Klassi nimi
  • Sildi nimi
  • tekst link
  • Osaline lingi tekst
  • XPATH

Lokaatori vรครคrtus on kordumatu vรครคrtus, mille abil saab veebielementi tuvastada. Arendajad ja testijad vastutavad selle eest, et veebielemendid oleksid teatud atribuutide (nt ID vรตi nime) abil รผheselt tuvastatavad.

Nรคide:

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

Nรคide: otsige elementi Selenium

Jรคrgmist rakendust kasutatakse demo eesmรคrgil

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

Stsenaarium:

Samm 1: Avage AUT

Samm 2: Otsige รผles ja klรตpsake raadionuppu

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

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

FindElements sisse Selenium kรคsk vรตtab parameetrina sisse objekti By ja tagastab veebielementide loendi. Tagastab tรผhja loendi, kui antud lokaatoristrateegia ja asukohavรครคrtuse abil elemente ei leitud. Allpool on kรคsu elementide leidmise sรผntaks.

Nรคide:

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

Nรคide: otsige elemente Selenium

Stsenaarium:

Samm 1: Avage testitava rakenduse URL

Samm 1: Otsige รผles raadionuppude tekst ja printige 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"));
    }
  }
}

Otsi element Vs Otsi elemente

Allpool on toodud peamised erinevused elemendi otsimise ja elementide leidmise kรคskude vahel.

Elementide leidmine vs elementide leidmine
Otsi element Vs Otsi elemente sisse Selenium
Leidke element Otsige elemente
Tagastab esimese kรตige veebielemendi, kui sama lokaatoriga on leitud mitu veebielementi Tagastab veebielementide loendi
Viskab erandi NoSuchElementException, kui lokaatoristrateegiale vastavaid elemente pole Tagastab tรผhja loendi, kui lokaatoristrateegiale vastavaid veebielemente pole
Otsi element XPathi abil leiab ainult รผhe veebielemendi See leiab elementide kogumi, mis vastavad asukoha mรครคramise strateegiale.
Ei kasuta Iga veebielement on indekseeritud numbriga, mis algab 0-st, nagu massiiv

kokkuvรตte

  • Elemendi otsimise kรคsk tagastab veebielemendi, mis vastab veebilehel kรตige esimesele elemendile.
  • Kรคsk Find Elements tagastab kriteeriumidele vastavate veebielementide loendi.
  • Leidke element XPathi jรคrgi Selenium kรคsk viskab NoSuchElementException, kui ta ei leia kriteeriumidele vastavat elementi.
  • Elementide otsimise kรคsk tagastab tรผhja loendi Selenium kui kriteeriumidele vastavaid elemente pole

Vรตta see postitus kokku jรคrgmiselt: