Web-taulukon käsitteleminen Selenium web-ajuri

Missä Web-taulukko on Selenium?

A Verkkotaulukko in Selenium on WebElement, jota käytetään tietojen tai informaation taulukkomuodossa. Näytettävät tiedot voivat olla joko staattisia tai dynaamisia. Verkkotaulukkoon ja sen elementteihin pääsee käsiksi käyttämällä WebElement-toimintoja ja paikantimia Selenium. Tyypillinen esimerkki verkkotaulukosta olisi sähköisen kaupankäynnin alustalla näkyvät tuotetiedot.

HTML-verkkotaulukon lukeminen

Joskus meidän on käytettävä elementtejä (yleensä tekstejä), jotka ovat HTML-taulukoissa. On kuitenkin hyvin harvoin web-suunnittelija antaa id- tai name-attribuuttia taulukon tiettyyn soluun. Siksi emme voi käyttää tavallisia menetelmiä, kuten "By.id()", "By.name()" tai "By.cssSelector()". Tässä tapauksessa luotettavin vaihtoehto on käyttää niitä "By.xpath()" -menetelmällä.

Web-taulukon käsitteleminen Selenium

Harkitse alla olevaa HTML-koodia verkkotaulukoiden käsittelemiseen Selenium.

Kuinka kirjoittaa XPath taulukolle Selenium

Käytämme XPath saada tekstin "neljäs solu" sisältävän solun sisäteksti.

Kuinka kirjoittaa XPath taulukolle Selenium

Vaihe 1 – Aseta yläelementti (taulukko)

XPath-paikantimet WebDriverissa alkavat aina kaksinkertaisella vinoviivalla "//" ja sen jälkeen pääelementillä. Koska käsittelemme verkkotaulukoita Selenium, pääelementin tulee aina olla tag. Ensimmäinen osa meidän Selenium XPath-taulukkopaikantimen tulisi siksi alkaa "//table".

Selenium Esimerkki verkkotaulukosta

Vaihe 2 – Lisää alatason elementit

Elementti heti alla On joten voimme sanoa sen on "lapsi". . Ja myös, on "vanhempi". . Kaikki XPathin alielementit sijoitetaan yläelementin oikealle puolelle ja erotetaan yhdellä vinoviivalla "/" alla olevan koodin mukaisesti.

Selenium Esimerkki verkkotaulukosta

Vaihe 3 – Lisää predikaatit

The elementti sisältää kaksi tunnisteet. Voimme nyt sanoa, että nämä kaksi tunnisteet ovat "lapsia". . Näin ollen voimme sanoa niin on molempien vanhempi elementtejä.

Toinen asia, jonka voimme päätellä, on, että nämä kaksi elementit ovat sisaruksia. Sisarukset viittaavat lapsielementteihin, joilla on sama vanhempi.

Päästäksesi kohteeseen haluamme käyttää (se, jossa on teksti "neljäs solu"), meidän on ensin käytettävä toinen eikä ensimmäinen. Jos kirjoitamme yksinkertaisesti "//table/tbody/tr", pääsemme ensimmäiseen tag.

Joten, miten pääsemme toiseen sitten? Vastaus tähän on käyttää Predikaatit.

Predikaatit ovat numeroita tai HTML-attribuutteja, jotka on suljettu hakasulkeisiin "[ ]", jotka erottavat alielementin sen sisaruksista.. Koska meidän täytyy päästä on toinen, käytämme predikaattina "[2]".

Selenium Esimerkki verkkotaulukosta

Jos emme käytä predikaattia, XPath käyttää ensimmäistä sisarusta. Siksi voimme käyttää ensimmäistä käyttämällä jompaakumpaa näistä XPath-koodeista.

Selenium Web-taulukko Xpathilla

Vaihe 4 – Lisää seuraavat lapsielementit käyttämällä sopivia predikaatteja

Seuraava elementti, johon meidän on käytettävä, on toinen . Käytämme vaiheista 2 ja 3 oppimiamme periaatteita ja viimeistelemme XPath-koodimme alla olevan kaltaiseksi.

Verkkotaulukko sisään Selenium käyttämällä Xpathia

Nyt kun meillä on oikea XPath-paikannus, voimme jo käyttää haluamaamme solua ja saada sen sisäisen tekstin alla olevan koodin avulla. Se olettaa, että olet tallentanut yllä olevan HTML-koodin nimellä "newhtml.html" C-asemaan.

Verkkotaulukko sisään Selenium käyttämällä Xpathia

public static void main(String[] args) {
	String baseUrl = "http://demo.guru99.com/test/write-xpath-table.html";
	WebDriver driver = new FirefoxDriver();

	driver.get(baseUrl);
	String innerText = driver.findElement(
		By.xpath("//table/tbody/tr[2]/td[2]")).getText(); 	
        System.out.println(innerText); 
	driver.quit();
	}
}

Verkkotaulukko sisään Selenium käyttämällä Xpathia

Sisäkkäisten taulukoiden käyttäminen

Samat edellä käsitellyt periaatteet koskevat sisäkkäisiä taulukoita. Sisäkkäiset taulukot ovat toisen taulukon sisällä olevia pöytiä. Alla on esimerkki.

Sisäkkäisten taulukoiden käyttäminen Selenium

Päästäksemme soluun, jossa on teksti "4-5-6" käyttämällä "//vanhempi/lapsi"- ja predikaattikäsitteitä edellisestä osasta, meidän pitäisi pystyä keksimään alla oleva XPath-koodi.

Sisäkkäisten taulukoiden käyttäminen Selenium


Alla olevan WebDriver-koodin pitäisi pystyä hakemaan solun sisäteksti, jota käytämme.

Sisäkkäisten taulukoiden käyttö Selenium

public static void main(String[] args) {
	String baseUrl = "http://demo.guru99.com/test/accessing-nested-table.html";
	WebDriver driver = new FirefoxDriver();

	driver.get(baseUrl);
	String innerText = driver.findElement(
		By.xpath("//table/tbody/tr[2]/td[2]/table/tbody/tr/td[2]")).getText(); 		
        System.out.println(innerText); 
	driver.quit();
}

Alla oleva tuloste vahvistaa, että sisäisen taulukon käyttö onnistui.

Sisäkkäisten taulukoiden käyttö Selenium

Attribuuttien käyttäminen predikaatteina

Jos elementti on kirjoitettu syvälle HTML-koodiin siten, että predikaatille käytettävää numeroa on erittäin vaikea määrittää, voimme käyttää sen sijaan elementin ainutlaatuista attribuuttia.

Alla olevassa esimerkissä "New Yorkista Chicagoon" -solu sijaitsee syvällä Mercury Toursin etusivun HTML-koodi.

Selenium Esimerkki verkkotaulukosta käyttämällä attribuutteja predikaatteina

Selenium Esimerkki verkkotaulukosta käyttämällä attribuutteja predikaatteina

Tässä tapauksessa voimme käyttää taulukon ainutlaatuista attribuuttia (width=”270″) predikaattina. Attribuutteja käytetään predikaatteina lisäämällä niiden eteen @-symboli. Yllä olevassa esimerkissä "New Yorkista Chicagoon" -solu sijaitsee ensimmäisessä neljännestä , joten XPathimme pitäisi olla alla olevan kuvan mukainen.

Selenium Esimerkki verkkotaulukosta, jossa attribuutit predikaatteina

Muista tämä, kun laitamme XPath-koodin Java, meidän tulee käyttää estomerkkiä taaksepäin vinoviivaa "\" lainausmerkeissä "270":n molemmilla puolilla, jotta By.xpath():n merkkijonoargumentti ei pääty ennenaikaisesti.

Selenium Esimerkki verkkotaulukosta, jossa attribuutit predikaatteina

Olemme nyt valmiita käyttämään tätä solua alla olevan koodin avulla.

Selenium Esimerkki verkkotaulukosta, jossa attribuutit predikaatteina

public static void main(String[] args) {
	String baseUrl = "http://demo.guru99.com/test/newtours/";
	WebDriver driver = new FirefoxDriver();

	driver.get(baseUrl);
	String innerText = driver.findElement(By
		.xpath("//table[@width=\"270\"]/tbody/tr[4]/td"))
		.getText(); 		
	System.out.println(innerText); 
	driver.quit();
}

Selenium Esimerkki verkkotaulukosta, jossa attribuutit predikaatteina

Pikanäppäin: Käytä tarkastuselementtiä päästäksesi sisään taulukoihin Selenium

Jos elementin numero tai attribuutti on erittäin vaikea tai mahdoton saada, nopein tapa luoda XPath-koodi on käyttää Inspect Element -toimintoa.

Harkitse alla olevaa esimerkkiä Mercury Tours kotisivut.

Selenium Esimerkki verkkotaulukosta, jossa attribuutit predikaatteina

Vaihe 1

Käytä Firebugia saadaksesi XPath-koodin.

Selenium Esimerkki verkkotaulukosta, jossa attribuutit predikaatteina

Vaihe 2

Etsi ensimmäinen "taulukon" pääelementti ja poista kaikki sen vasemmalla puolella.

Selenium Esimerkki verkkotaulukosta, jossa attribuutit predikaatteina

Vaihe 3

Kiinnitä koodin jäljellä oleva osa eteen kaksoisvinoviivalla “//” ja kopioi se WebDriver-koodiisi.

Selenium Verkkotaulukkoesimerkki attribuutteilla

Alla oleva WebDriver-koodi pystyy noutamaan onnistuneesti käyttämämme elementin sisäisen tekstin.

Selenium Verkkotaulukkoesimerkki attribuutteilla

public static void main(String[] args) {
	String baseUrl = "http://demo.guru99.com/test/newtours/";
	WebDriver driver = new FirefoxDriver();

	driver.get(baseUrl);
	String innerText = driver.findElement(By
		.xpath("//table/tbody/tr/td[2]"
		+ "//table/tbody/tr[4]/td/"
		+ "table/tbody/tr/td[2]/"
		+ "table/tbody/tr[2]/td[1]/"
		+ "table[2]/tbody/tr[3]/td[2]/font"))
		.getText(); 		
	System.out.println(innerText); 
	driver.quit();
}

Yhteenveto

  • By.xpath() on yleisesti käytetty WebTablein elementtien käyttämiseen Selenium.
  • Jos elementti on kirjoitettu syvälle HTML-koodiin siten, että predikaatille käytettävää numeroa on erittäin vaikea määrittää, voimme käyttää elementin ainutlaatuista attribuuttia sen sijaan Selenium hanki pöytäelementti.
  • Attribuutteja käytetään predikaatteina lisäämällä niiden eteen @-symboli.
  • Käytä Inspect Elementiä päästäksesi WebTable-sovellukseen Selenium