Hogyan kell kezelni a webtáblát Selenium webdriver

Miben található a webtábla Selenium?

A Web táblázat in Selenium az adatok vagy információk táblázatos ábrázolására használt webelem. A megjelenített adatok vagy információk lehetnek statikusak vagy dinamikusak. A webtábla és elemei a WebElement függvények és lokátorok segítségével érhetők el Selenium. A webtábla tipikus példája az e-kereskedelmi platformon megjelenített termékleírások.

HTML webtábla olvasása

Vannak esetek, amikor olyan elemekhez (általában szövegekhez) kell hozzáférnünk, amelyek HTML-táblázatokon belül vannak. Azonban nagyon ritkán fordul elő, hogy egy webtervező adjon meg azonosítót vagy név attribútumot a táblázat egy bizonyos cellájához. Ezért nem használhatjuk a szokásos módszereket, mint például a „By.id()”, „By.name()” vagy „By.cssSelector()”. Ebben az esetben a legmegbízhatóbb lehetőség a „By.xpath()” metódussal elérni őket.

Hogyan kell kezelni a webtáblát Selenium

Vegye figyelembe az alábbi HTML-kódot a webtáblák kezeléséhez Selenium.

Hogyan írjunk XPath-ot a táblához Selenium

Használni fogjuk XPath hogy megkapja a „negyedik cella” szöveget tartalmazó cella belső szövegét.

Hogyan írjunk XPath-ot a táblához Selenium

1. lépés – Állítsa be a szülő elemet (táblázat)

Az XPath lokátorok a WebDriverben mindig dupla perjel „//”-vel kezdődnek, majd a szülőelemmel. Mivel webtáblákkal van dolgunk Selenium, a szülő elemnek mindig a címke. A miénk első része Selenium Az XPath táblakeresőnek ezért „//table” karakterrel kell kezdődnie.

Selenium Példa webtáblázatra

2. lépés – Adja hozzá a gyermekelemeket

Az elem közvetlenül alatta van szóval azt mondhatjuk a „gyermeke”. . És még, a „szülője”. . Az XPath összes gyermekeleme a szülőelemtől jobbra helyezkedik el, egy perjellel elválasztva, az alábbi kód szerint.

Selenium Példa webtáblázatra

3. lépés – Predikátumok hozzáadása

A elem kettőt tartalmaz címkéket. Most már elmondhatjuk, hogy ez a kettő címkék „gyermekei”. . Következésképpen azt mondhatjuk mindkettő szülője elemeket.

Egy másik dolog, amiből arra következtethetünk, hogy a kettő elemek testvérek. A testvérek olyan gyermekelemekre utalnak, amelyeknek ugyanaz a szülője.

Ahhoz, hogy a hozzá akarunk férni (a „negyedik cella”) szöveggel rendelkezőhöz, először el kell érnünk a második és nem az első. Ha egyszerűen azt írjuk, hogy „//table/tbody/tr”, akkor az elsőhöz fogunk hozzáférni címke.

Tehát hogyan érhetjük el a másodikat akkor? A válasz erre az, hogy használja Predikátumok.

Az predikátumok olyan számok vagy HTML-attribútumok, amelyek szögletes zárójelben „[ ]” vannak zárva, amelyek megkülönböztetik a gyermekelemet a testvéreitől.. Mivel a el kell érnünk a másodikat, akkor a „[2]”-t használjuk predikátumként.

Selenium Példa webtáblázatra

Ha nem használunk predikátumot, az XPath hozzáfér az első testvérhez. Ezért hozzáférhetünk az elsőhöz ezen XPath kódok bármelyikének használatával.

Selenium Web táblázat az Xpath használatával

4. lépés – Adja hozzá a következő gyermekelemeket a megfelelő predikátumok használatával

A következő elem, amelyet el kell érnünk, a második . A 2. és 3. lépésből tanult alapelveket alkalmazva véglegesítjük XPath kódunkat, hogy olyan legyen, mint az alább látható.

Web táblázat be Selenium Xpath használatával

Most, hogy megvan a megfelelő XPath lokátor, már elérhetjük a kívánt cellát, és az alábbi kód segítségével megkaphatjuk a belső szövegét. Feltételezi, hogy a fenti HTML-kódot „newhtml.html” néven mentette el a C meghajtón.

Web táblázat be Selenium Xpath használatával

public static void main(String[] args) {
	String baseUrl = "https://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();
	}
}

Web táblázat be Selenium Xpath használatával

Beágyazott táblázatok elérése

A fent tárgyalt elvek érvényesek a beágyazott táblákra is. A beágyazott táblázatok egy másik táblán belül található táblázatok. Az alábbiakban egy példa látható.

Hogyan lehet elérni a beágyazott táblákat Selenium

A „4-5-6” szövegű cella eléréséhez a „//szülő/gyermek” és az előző szakasz predikátum fogalmaival, az alábbi XPath kóddal kell előállnunk.

Hogyan lehet elérni a beágyazott táblákat Selenium


Az alábbi WebDriver kódnak képesnek kell lennie arra, hogy lekérje annak a cellának a belső szövegét, amelyhez hozzáférünk.

Beágyazott táblázatok elérése Selenium

public static void main(String[] args) {
	String baseUrl = "https://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();
}

Az alábbi kimenet megerősíti, hogy a belső tábla sikeresen elérhető.

Beágyazott táblázatok elérése Selenium

Attribútumok használata predikátumként

Ha az elemet a HTML-kód mélyén írják, így az állítmányhoz használandó számot nagyon nehéz meghatározni, használhatjuk helyette az elem egyedi attribútumait.

Az alábbi példában a „New York – Chicago” cella mélyen található Mercury A Tours kezdőlapjának HTML kódja.

Selenium Példa webtábla attribútumok használatával predikátumként

Selenium Példa webtábla attribútumok használatával predikátumként

Ebben az esetben a tábla egyedi attribútuma (width=”270″) használható predikátumként. Az attribútumok predikátumként használatosak úgy, hogy előtagjukat a @ szimbólummal látják el. A fenti példában a „New York – Chicago” cella az elsőben található a negyedik , így az XPath-unknak az alábbiak szerint kell lennie.

Selenium Példa webtábla attribútumokkal predikátumként

Ne feledje, hogy amikor beírjuk az XPath kódot Java, a „270” mindkét oldalán a „\” escape karaktert használjuk a dupla idézőjelek közé, hogy a By.xpath() karakterlánc-argumentuma ne fejeződjön le idő előtt.

Selenium Példa webtábla attribútumokkal predikátumként

Most már készen állunk a cella elérésére az alábbi kóddal.

Selenium Példa webtábla attribútumokkal predikátumként

public static void main(String[] args) {
	String baseUrl = "https://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 Példa webtábla attribútumokkal predikátumként

Parancsikon: Használja az Inspect Elementet a táblázatok eléréséhez Selenium

Ha egy elem számát vagy attribútumait rendkívül nehéz vagy lehetetlen megszerezni, akkor az XPath kód létrehozásának leggyorsabb módja az Elem vizsgálata.

Tekintsük az alábbi példát innen Mercury A túrák honlapja.

Selenium Példa webtábla attribútumokkal predikátumként

1 lépés

A Firebug segítségével szerezze be az XPath kódot.

Selenium Példa webtábla attribútumokkal predikátumként

2 lépés

Keresse meg az első „tábla” szülőelemet, és töröljön mindent, ami tőle balra található.

Selenium Példa webtábla attribútumokkal predikátumként

3 lépés

A kód fennmaradó részét dupla perjel „//” jelölje be, és másolja át a WebDriver kódjába.

Selenium Példa webtábla attribútumokkal

Az alábbi WebDriver kód képes lesz sikeresen lekérni az éppen elért elem belső szövegét.

Selenium Példa webtábla attribútumokkal

public static void main(String[] args) {
	String baseUrl = "https://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();
}

Összegzésként

  • A By.xpath() általánosan használt a WebTable elemeinek eléréséhez Selenium.
  • Ha az elem mélyen a HTML-kódba van írva úgy, hogy az állítmányhoz használandó számot nagyon nehéz meghatározni, akkor használhatjuk az elem egyedi attribútumait Selenium táblázat elemet kap.
  • Az attribútumok predikátumként használatosak úgy, hogy előtagjukat a @ szimbólummal látják el.
  • Használja az Inspect Element elemet a WebTable in eléréséhez Selenium