XPath sadrži, slijedeći braću i sestre, pretke i selen I/ILI

Ako je jednostavan XPath ne može pronaći komplicirani web element za našu testnu skriptu, moramo koristiti funkcije iz biblioteke XPath 1.0. Kombinacijom ovih funkcija možemo stvoriti specifičniji XPath. Razgovarajmo o 3 takve funkcije -

  1. Sadrži
  2. Brat ili sestra
  3. Predak
  4. I ILI
  5. Roditelj
  6. Počinje sa
  7. XPath osi

Proučimo ih detaljno -

Što sadrži () u selenu?

sadrži () u selenu je funkcija unutar izraza Xpath koja se koristi za traženje web elemenata koji sadrže određeni tekst. Možemo izdvojiti sve elemente koji odgovaraju zadanoj tekstualnoj vrijednosti pomoću XPath contains () funkcije na cijeloj web stranici. Sadrži u XPath -u ima mogućnost pronalaženja elementa s djelomičnim tekstom.

Npr. Ovdje tražimo sidro. Sadrži tekst kao 'SAP M'. | _+_ |

NAPOMENA: Na tome možete vježbati sljedeću vježbu XPath https://demo.on2vhf.be/test/selenium-xpath.html

Što je brat ili sestra u Selenium Webdriveru?

DO Braća i sestre u Selenium Webdriveru je funkcija koja se koristi za dohvaćanje web elementa koji je brat ili roditelj roditeljskom elementu. Ako je nadređeni element poznat, tada se web element može lako pronaći ili locirati koji može koristiti atribut brata i sestre izraza Xpath u selenskom webdriveru.

Brat ili sestra u XPath -u Primjer: Ovdje na osnovu elementa brata 'a' nalazimo 'h4' | _+_ |

Predak : Za pronalaženje elementa na temelju roditeljskog elementa možemo koristiti atribut pretka XPath -a.

Shvatimo ove 3 funkcije na primjeru -

Koraci ispitivanja

Bilješka: Od datuma izrade vodiča početna stranica Guru99 je ažurirana pa umjesto toga koristite demo stranicu za pokretanje testova

  1. Ići https://demo.on2vhf.be/test/on2vhfhome/
  2. U odjeljku 'Nekoliko naših najpopularnijih tečajeva' pretražite sve web elemente koji su rođeni brat webelementa čiji je tekst 'SELENIUM'
  3. Element ćemo pronaći pomoću XPath teksta koji sadrži, pretka i funkcije brata i sestara.

UPOTREBA Sadrži i XPath braću i sestre

'//h4/a[contains(text(),'SAP M')]'

Izlaz će biti sljedeći:

Predak u Selenium Webdriveru

Predak u Selenium Webdriveru je funkcija koja se koristi za pronalaženje pretka određenog člana na navedenom sloju. Razina pretka koju treba vratiti ili razina pretka u odnosu na razinu člana može se izričito navesti. Vraća broj hijerarhijskih koraka od pretka, locirajući navedenog pretka koji korisnik želi.

Pretpostavimo da sada moramo pretražiti sve elemente u odjeljku 'Popularni tečaj' uz pomoć pretka sidra čiji je tekst 'SELENIUM'

Ovdje će naš xpath upit biti poput | _+_ |

Potpuni kod

'//div[@class='canvas- graph']//a[@href='tmp/accounting.html'][i[@class='icon-usd']]/following-sibling::h4'

Izlaz će izgledati kao-

Korištenje AND i OR

Korištenjem AND i OR možete staviti 2 uvjeta u naš XPath izraz.

  • U slučaju AND oba uvjeta bi trebala biti točna samo onda on pronađe element.
  • U slučaju ILI bilo koji od dva uvjeta treba biti istinit, samo on nalazi element.

Ovdje će naš XPath upit biti poput | _+_ | | _+_ |

Koraci ispitivanja:

  1. Ići https://demo.on2vhf.be/v1/
  2. U odjeljku će se koristiti gornja demo stranica za pretraživanje elemenata s različitim funkcijama XPath -a.

Element ćete pronaći pomoću osa AND i OR, roditeljske, početne s i XPath osi

I ILI Primjer

 import java.util.List; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.annotations.Test; public class SiblingAndParentInXpath { @Test public void testSiblingAndParentInXpath(){ WebDriver driver; String driverPath = 'C:\geckodriver.exe'; System.setProperty('webdriver.gecko.driver', driverPath); driver = new FirefoxDriver(); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); driver.get('https://demo.on2vhf.be/test/on2vhfhome/'); //Search element inside 'Popular course' which are sibling of control 'SELENIUM' ,Here first we will find a h2 whose text is ''A few of our most popular courses' ,then we move to its parent element which is a 'div' , inside this div we will find a link whose text is 'SELENIUM' then at last we will find all of the sibling elements of this link('SELENIUM') List dateBox = driver.findElements(By.xpath('//h2[contains(text(),'A few of our most popular courses')]/parent::div//div[//a[text()='SELENIUM']]/following-sibling::div[@class='rt-grid-2 rt-omega']')); //Print all the which are sibling of the the element named as 'SELENIUM' in 'Popular course' for (WebElement webElement : dateBox) { System.out.println(webElement.getText()); } driver.close(); } } 

Što je roditelj u selenu?

Roditelj u selenu je metoda koja se koristi za dohvaćanje roditeljskog čvora trenutnog čvora odabranog na web stranici. Vrlo je korisno u situacijama kada odaberete element i trebate nabaviti roditeljski element pomoću Xpath -a. Ova metoda se također koristi za dobivanje roditelja roditelja.

Ovdje će naš XPath upit biti poput | _+_ |

XPath pomoću roditeljskog | _+_ |

Počinje sa

Pomoću funkcije Starts-with možete pronaći element čiji se atribut dinamički mijenja pri osvježavanju ili drugim operacijama poput klika, slanja itd.

Ovdje će naš XPath upit biti poput | _+_ |

'//div[.//a[text()='SELENIUM']]/ancestor::div[@class='rt-grid-2 rt-omega']/following-sibling::div'

Xpath osi

Korištenjem XPath osi možete pronaći dinamičke i vrlo složene elemente na web stranici. XPath osi sadrže nekoliko metoda za pronalaženje elementa. Ovdje će se raspravljati o nekoliko metoda.

slijedeći : Ova funkcija vraća neposredni element određene komponente.

Ovdje će naš XPath upit biti poput | _+_ |

XPath koristeći sljedeće | _+_ |

Prethodno: Ova funkcija vraća prethodni element određenog elementa.

Ovdje će naš XPath upit biti poput | _+_ |

XPath koristeći Preceding | _+_ |

d) Potomak: Ova funkcija vraća element potomak određenog elementa.

Ovdje će naš XPath upit biti poput | _+_ |

XPath pomoću Descendenta | _+_ |

Sažetak

  • Postoje neke situacije kada se uobičajeni XPath ne može koristiti za pronalaženje elementa. U takvoj situaciji potrebne su nam različite funkcije od upita xpath.
  • Postoje neke važne XPath funkcije kao što je XPath, roditelj, preci, sljedbenici, sestra itd.
  • Pomoću ovih funkcija možete stvoriti složene XPath izraze.