Jsou chvíle, kdy potřebujeme přistupovat k prvkům (obvykle textům), které jsou v HTML tabulkách. Pro webového designéra je však velmi zřídka poskytnout atribut id nebo name určité buňce v tabulce. Proto nemůžeme použít obvyklé metody jako „By.id ()“, „By.name ()“ nebo „By.cssSelector ()“. V tomto případě je nejspolehlivější možností získat k nim přístup pomocí metody „By.xpath ()“.
V tomto výukovém programu se naučíte-
Jak psát XPath pro tabulku
Přístup k vnořeným tabulkám
Použití atributů jako predikátů
Zkratka: Použijte prvek Inspect pro přístup k tabulkám v selenu
Jak psát XPath pro tabulku
Zvažte níže uvedený HTML kód.
Pomocí XPath získáme vnitřní text buňky obsahující text „čtvrtá buňka“.
Krok 1 - Nastavte nadřazený prvek (tabulka)
Lokátory XPath ve WebDriveru vždy začínají dvojitým lomítkem „//“ a poté následují nadřazeným prvkem . Jelikož máme co do činění s tabulkami, nadřazeným prvkem by vždy měla být značka
. První část našeho lokátoru XPath by proto měla začínat „// table“.
Krok 2 - Přidejte podřízené prvky
Prvek bezprostředně pod je
, takže můžeme říci, že
je „dítětem“
. A také
je „rodičem“
. Všechny podřízené prvky v XPath jsou umístěny napravo od jejich nadřazeného prvku a jsou odděleny jedním lomítkem „/“, jako je kód zobrazený níže.
Krok 3 - Přidejte predikáty
Prvek
obsahuje dvě značky
. Nyní můžeme říci, že tyto dvě značky
jsou „potomky“
. V důsledku toho můžeme říci, že
je rodičem obou prvků
.
Další věc, kterou můžeme uzavřít, je, že dva prvky
jsou sourozenci. Sourozenci odkazují na podřízené prvky, které mají stejného rodiče .
Abychom se dostali k
, ke kterému si přejeme přístup (ten s textem „čtvrtá buňka“), musíme nejprve přistupovat k druhému
a ne k prvnímu. Pokud jednoduše napíšeme „// table / tbody / tr“, budeme přistupovat k první značce
.
Jak tedy získáme přístup k druhému
? Odpovědí na toto je použití predikátů .
Predikáty jsou čísla nebo atributy HTML uzavřené v hranatých závorkách „[]“, které odlišují podřízený prvek od jeho sourozenců . Protože
, ke kterému potřebujeme získat přístup, je druhý, použijeme jako predikát „[2]“.
Pokud nepoužijeme žádný predikát, XPath získá přístup k prvnímu sourozenci. Proto můžeme přistupovat k prvnímu
pomocí některého z těchto kódů XPath.
Krok 4 - Přidejte následující podřízené prvky pomocí příslušných predikátů
Dalším prvkem, ke kterému musíme přistupovat, je druhý
. Použitím principů, které jsme se naučili z kroků 2 a 3, dokončíme náš kód XPath tak, jak je uveden níže.
Nyní, když máme správný lokátor XPath, můžeme již přistupovat k buňce, kterou jsme chtěli, a získat její vnitřní text pomocí níže uvedeného kódu. Předpokládá, že jste výše uvedený kód HTML uložili na disk C jako „newhtml.html“.
Stejné zásady popsané výše platí pro vnořené tabulky. Vnořené tabulky jsou tabulky umístěné v jiné tabulce . Níže je uveden příklad.
Pro přístup k buňce s textem „4-5-6“ pomocí „// parent / child“ a predikátových konceptů z předchozí části bychom měli být schopni přijít s níže uvedeným XPath kódem.
Níže uvedený kód WebDriver by měl být schopen načíst vnitřní text buňky, ke které přistupujeme.
Výstup níže potvrzuje, že k vnitřní tabulce byl úspěšně přistupován.
Použití atributů jako predikátů
Pokud je prvek napsán hluboko v kódu HTML tak, že je velmi obtížné určit číslo, které se má použít pro predikát, můžeme místo toho použít jedinečný atribut tohoto prvku.
V níže uvedeném příkladu je buňka „New York to Chicago“ umístěna hluboko do HTML kódu domovské stránky Mercury Tours.
V tomto případě můžeme jako predikát použít jedinečný atribut tabulky (width = "270"). Atributy se používají jako predikáty jejich předponou se symbolem @ . Ve výše uvedeném příkladu je buňka „New York do Chicaga“ umístěna v první
čtvrté
, a proto by naše XPath měla být tak, jak je uvedeno níže.
Pamatujte, že když vložíme kód XPath do Javy, měli bychom použít dvojité uvozovky na obou stranách čísla „270“ zpětné lomítko „\“, aby nebyl předčasně ukončen řetězcový argument By.xpath () .
Nyní jsme připraveni k přístupu k této buňce pomocí níže uvedeného kódu.
By.xpath () se běžně používá pro přístup k prvkům tabulky.
Pokud je prvek napsán hluboko v kódu HTML tak, že je velmi obtížné určit číslo, které se má použít pro predikát, můžeme místo toho použít jedinečný atribut tohoto prvku.
Atributy se používají jako predikáty jejich předponou se symbolem @.
Použijte prvek Inspect pro přístup k tabulkám v selenu