Sú chvíle, kedy potrebujeme získať prístup k prvkom (zvyčajne k textom), ktoré sú v tabuľkách HTML. Je však veľmi zriedkavé, aby webový dizajnér uviedol určitú bunku v tabuľke atribút id alebo name. Preto nemôžeme použiť obvyklé metódy ako „By.id ()“, „By.name ()“ alebo „By.cssSelector ()“. V takom prípade je najspoľahlivejšou možnosťou získať k nim prístup pomocou metódy „By.xpath ()“.
V tomto výučbe sa naučíte -
Ako písať XPath pre tabuľku
Prístup k vnoreným tabuľkám
Používanie atribútov ako predikátov
Skratka: Použite prvok Inspect na prístup k tabuľkám na seléne
Ako písať XPath pre tabuľku
Zvážte kód HTML uvedený nižšie.
Použijeme XPath na získanie vnútorného textu bunky obsahujúcej text „štvrtá bunka“.
Krok 1 - Nastavte nadradený prvok (tabuľka)
Lokátory XPath vo WebDriveri vždy začínajú dvojitou lomkou „//“ a potom nasledujú nadradeným prvkom . Pretože máme do činenia s tabuľkami, nadradeným prvkom by mal byť vždy tag
. Prvá časť nášho vyhľadávača XPath by preto mala začínať zámenom „// table“.
Krok 2 - Pridajte podradené prvky
Prvok bezprostredne pod je
, takže môžeme povedať, že
je „potomkom“
. A tiež je
„rodičom“
. Všetky podradené prvky v XPath sú umiestnené napravo od ich nadradeného prvku a sú oddelené jednou lomkou „/“, ako je uvedené nižšie.
Krok 3 - Pridajte predikáty
Prvok
obsahuje dve značky
. Teraz môžeme povedať, že tieto dve značky
sú „deťmi“ osoby
. V dôsledku toho môžeme povedať, že
je rodičom oboch prvkov
.
Ďalšou vecou, ktorú môžeme uzavrieť, je, že dva prvky
sú súrodenci. Súrodenci označujú podradené prvky, ktoré majú rovnakého rodiča .
Aby sme sa dostali k
, ku ktorej chceme získať prístup (k tej s textom „štvrtá bunka“), musíme najskôr získať prístup k druhej
a nie k prvej. Ak jednoducho napíšeme „// table / tbody / tr“, dostaneme sa k prvej značke
.
Ako teda dostaneme druhý
? Odpoveďou je použitie predikátov .
Predikáty sú čísla alebo atribúty HTML uzavreté v pároch hranatých zátvorkách „[]“, ktoré odlišujú podradený prvok od jeho súrodencov . Pretože
, ku ktorému potrebujeme získať prístup, je druhé, ako predikát použijeme „[2]“.
Pokiaľ nebudeme používať žiaden predikát, XPath sa dostane k prvému súrodencovi. Preto môžeme pristupovať k prvému
pomocou ktoréhokoľvek z týchto kódov XPath.
Krok 4 - Pridajte nasledovné prvky dieťaťa pomocou vhodných predikátov
Ďalším prvkom, ku ktorému musíme získať prístup, je druhý
. Použitím princípov, ktoré sme sa naučili z krokov 2 a 3, dokončíme náš kód XPath tak, ako je uvedený nižšie.
Teraz, keď máme správny lokátor XPath, môžeme už získať prístup k bunke, ktorú sme chceli, a získať jej vnútorný text pomocou nižšie uvedeného kódu. Predpokladá, že ste vyššie uložili HTML kód ako „newhtml.html“ na disk C.
Rovnaké princípy, o ktorých sa hovorilo vyššie, sa týkajú vnorených tabuliek. Vnorené tabuľky sú tabuľky umiestnené v inej tabuľke . Nižšie je uvedený príklad.
Pre prístup k bunke s textom „4-5-6“ pomocou „// parent / child“ a predikátových konceptov z predchádzajúcej časti by sme mali byť schopní prísť s nižšie uvedeným XPath kódom.
Kód WebDriver uvedený nižšie by mal byť schopný načítať vnútorný text bunky, ku ktorej pristupujeme.
Výstup uvedený nižšie potvrdzuje, že k vnútornej tabuľke bol úspešne prístupný.
Používanie atribútov ako predikátov
Ak je prvok napísaný hlboko v kóde HTML, takže je veľmi ťažké určiť číslo, ktoré sa má použiť pre predikát, môžeme namiesto toho použiť jedinečný atribút tohto prvku.
V príklade nižšie je bunka „New York - Chicago“ umiestnená hlboko do HTML kódu domovskej stránky Mercury Tours.
V takom prípade môžeme ako predikát použiť jedinečný atribút tabuľky (width = "270"). Atribúty sa používajú ako predikáty ich predponou symbolom @ . V príklade vyššie je bunka „New York - Chicago“ umiestnená v prvej
štvrtej
, takže naša cesta XPath by mala byť taká, ako je uvedené nižšie.
Pamätajte, že keď vložíme kód XPath do Javy, mali by sme pre dvojité úvodzovky na oboch stranách čísla „270“ použiť spätnú lomku „\“, aby sa reťazcový argument By.xpath () predčasne neukončil. .
Teraz sme pripravení na prístup k tejto bunke pomocou nižšie uvedeného kódu.
Skratka: Použite prvok Inspect na prístup k tabuľkám na seléne
Ak je mimoriadne ťažké alebo nemožné získať číslo alebo atribút prvku, najrýchlejší spôsob vygenerovania kódu XPath je pomocou nástroja Inspect Element.
Zvážte príklad uvedený nižšie na domovskej stránke Mercury Tours.
Krok 1
Použite Firebug na získanie kódu XPath.
Krok 2
Vyhľadajte prvý nadradený prvok „tabuľka“ a vymažte všetko, čo sa nachádza vľavo od neho.
Krok 3
Pred zvyšnú časť kódu vložte dvojitú lomku „//“ a skopírujte ju do kódu WebDriver.
Kód WebDriver uvedený nižšie bude schopný úspešne načítať vnútorný text prvku, ku ktorému pristupujeme.
By.xpath () sa bežne používa na prístup k prvkom tabuľky.
Ak je prvok napísaný hlboko v kóde HTML, takže je veľmi ťažké určiť číslo, ktoré sa má použiť pre predikát, môžeme namiesto toho použiť jedinečný atribút tohto prvku.
Atribúty sa používajú ako predikáty ich predponou symbolom @.
Použite prvok Inspect na prístup k tabuľkám v seléne