handling web tables frames
V poslednom výučbe selenium WebDriver sme sa naučili rôzne bežne a bežne používané príkazy selénu WebDriver vrátane dôležitých tém, ako je narábanie s prvkami iframe a výnimky v selénových skriptoch.
Napredujeme v našej komplexnej podobe séria návodov na selén , v tomto návode by sme diskutovali o spracovanie webových tabuliek, iframe a dynamických prvkov ktoré sú nevyhnutnou súčasťou každého webového projektu.
Tento výukový program sa skladá z 3 rôznych tém a mechanizmov ich spracovania v skripte selénu.
- Webové tabuľky / tabuľky HTML
- Rámy
- Dynamické prvky
Čo sa dozviete:
# 1) Webové tabuľky / HTML tabuľky
V tomto module sa dozvieme o webových tabuľkách alebo tabuľkách HTML na webovej stránke, o značkách dostupných v jazyku HTML a o tom, ako dynamicky narábať s webovými tabuľkami.
Webové tabuľky sú v podstate skupina prvkov, ktoré sú logicky uložené vo formáte riadkov a stĺpcov. Používa sa na usporiadanie podobných informácií na webovej stránke.
Nižšie je uvedený príklad tabuľky HTML:
Ďalej je uvedený útržok štruktúry HTML tabuľky HTML:
Nižšie uvedené značky sú všeobecne definované v html tabuľkách:
Značka 1. notable definuje tabuľku HTML.
Značka 2.body definuje kontajner pre riadky a stĺpce.
3.’tr ’definuje riadky v tabuľke HTML.
4. ‘td ’/‘ th ‘definuje stĺpec tabuľky HTML.
Nájdite podrobnosti o webovej tabuľke:
Existuje veľa spôsobov, ako môžeme zaobchádzať s webovou tabuľkou.
aký je dobrý prevodník z youtube na mp3
Prístup č :
Nižšie je xpath jednej z buniek v html tabuľke. Povedzme „meno“
// div [@ id = ‘main’] / table [1] / tbody / tr [1] / th [1]
tr [1] definuje prvý riadok a th [1] definuje prvý stĺpec.
Ak je počet riadkov a stĺpcov vždy konštantný, povedzme, že naša tabuľka HTML bude mať vždy 5 riadkov a 3 stĺpce.
for(int numberOfRows=1; numberOfRows<=5; numberOfRows++) { for(int numberOfCol=1; numberOfCol <=3; numberOfCol++) { System.out.println(driver.findElement(By.xpath (“//div[@id='main']/table[1]/tbody/tr [“+numberOfRows+”]/th[“+numberOfCol+”]”))); } }
Okrem počtu riadkov a stĺpcov zostáva každá súčasť XPath rovnaká. Môžete teda iterovať pomocou cyklu „for“ pre každý riadok a stĺpec, ako je uvedené vyššie.
Prístup # 2 :
Prvý prístup je najvhodnejší pre stôl, ktorý nemení svoje rozmery a vždy zostáva rovnaký. Vyššie uvedený prístup nebude dokonalým riešením pre dynamicky sa meniace webové tabuľky.
Ako príklad si vezmime nad tabuľku HTML:
WebElement htmltable=driver.findElement(By.xpath('//*[@id='main']/table[1]/tbody')); List rows=htmltable.findElements(By.tagName('tr')); for(int rnum=0;rnum Krok 1 : Najprv získajte celú tabuľku HTML a uložte ju do premennej „htmltable“ typu webového prvku.
Krok 2 : Získajte všetky riadky s názvom značky „tr“ a všetky prvky uložte do zoznamu webových prvkov. Teraz sú všetky prvky so značkou „tr“ uložené v zozname „riadkov“.
Krok 3 : Prelistujte každý riadok a získajte zoznam prvkov so štítkom ‘Th’. ‘Rows.get (0)‘ dá prvý riadok a ‘FindElements (By.tagName ( „Th“ )) “ poskytne zoznam stĺpcov pre riadok.
Krok 4 : Iterovať pomocou ‘Columns.getsize ()‘ a získate podrobnosti o každej bunke.
Poznámka : Vyššie uvedený prístup bude najvhodnejší, ak sa rozmery tabuľky budú meniť dynamicky.
Týmto sa uzatvára téma, ako narábať s webovými tabuľkami v seléne. Ďalej sa dozvieme, ako zaobchádzať s prvkom vo vnútri rámu.
# 2) Rámy
V tejto časti sa dozvieme o rámcoch na webovej stránke a o tom, ako ich identifikovať. Ďalej zistíme, ako môžeme narábať s rámom v selenium WebDriver.
Mnoho vývojárov rád umiestňuje prvky do rámu. Rám je ako kontajner, kde je možné zoskupiť niekoľko prvkov.
Identifikácia rámu:
Rôzne spôsoby, ako zistiť, či je prvok vo vnútri rámu alebo nie
# 1 . Kliknite pravým tlačidlom myši na prvok. Skontrolujte, či je k dispozícii možnosť „Tento rám“. Ak je k dispozícii táto možnosť rámca, znamená to, že prvok je vo vnútri rámca.
#dva . Zobraziť zdrojový kód webovej stránky a skontrolovať, či je pre prvok „iframe“ k dispozícii nejaká značka.
ako počítačový program pre začiatočníkov

Overte počet rámcov na webovej stránke :
Všetky rámce majú názov značky ako „iframe“.
Zoznam frameList = driver.findElements (By.tagName ( „Iframe“ ));
System.out.println (frameList.size ());
Vo vyššie uvedenom príklade : frameList bude mať celý zoznam rámcov a frameList.size () dá počet rámcov.
Manipulácia s prvkom vo vnútri rámu:
Ak je prvok vo vnútri rámu, musí sa ovládací prvok najskôr prepnúť na rám a až potom začať pracovať s prvkami.
Krok 1 : Prepnutie do vnútra rámu:
driver.switchTo (). rám (1); // číslo parametra.
alebo
driver.switchTo (). rám („názov rámca“); // zadať názov rámca ako parameter.
alebo
driver.switchTo (). frame („xpath of the frame“);
Krok 2 : Po prepnutí do rámu bude selén schopný pracovať s prvkami.
driver.findElement ( // ****************************************);
driver.findElement ( // ****************************************);
Tu sme sa naučili, ako narábať s prvkom vo vnútri rámu, a ďalej si povieme o rôznych spôsoboch zaobchádzania s dynamickým prvkom.
# 3) Dynamické prvky
V tejto časti sa naučíme rôzne spôsoby, ako zaobchádzať s dynamickými prvkami a zostaviť všeobecný Xpath.
ktorý operačný systém je pre notebook najlepší
V niekoľkých scenároch sa atribúty prvkov dynamicky menia. Môže to byť „id“, „meno“ atď.
Príklad : povedzme „id“ poľa používateľského mena je „username_123“ a XPath bude
// * [@ id = ‘username_123 ′] ale pri opätovnom otvorení stránky sa mohlo zmeniť pole „id“ používateľa „username“ a nová hodnota môže byť „username_234“.
V takom prípade test zlyhá, pretože selén nemohol nájsť cestu XPath, ktorú ste absolvovali skôr, pretože ID poľa sa zmenilo na inú hodnotu.
Existuje veľa prístupov v závislosti od typu problému:
Typ problému 1: Ak sa zmení časť hodnoty atribútu .
Príklad : Rovnako ako v predchádzajúcom príklade, hodnota id sa mení, ale niekoľko polí zostáva konštantných.
Položka „username_123“ sa zmenila na „username_234“, ale „username“ vždy zostala konštantná.
Môžete vytvoriť xpath ako je uvedené nižšie:
driver.findElement (By.xpath ( „// * [obsahuje (@ id,„ používateľské meno “)]]“ )). sendKeys ( „Používateľské meno“ );
vodič . findElement (By.xpath ( „// * [začína sa (@ id,‘ používateľ ’)]]“ )). sendKeys ( „Používateľské meno“ );
„Obsahuje“ je java metóda, ktorá kontroluje, či id obsahuje podreťazcové užívateľské meno.
začína s() skontroluje, či niektorý atribút začína slovom „užívateľ“.
Typ problému 2: Ak sa celá hodnota atribútu mení dynamicky.
Aj v tomto prípade môžu existovať rôzne prístupy:
Napríklad : ak sa ID poľa „login“ dynamicky mení a nie je k dispozícii žiadna konštantná hodnota, obsahuje metódu.
Riešenie : Použitie sendKeys.
Selén poskytuje rôzne API na použitie funkčných klávesov. Napríklad kláves tab, zadajte klávesy, F5 atď.
Krok 1 : Zadajte heslo
driver.findElement (By.id ( „Heslo“ )). sendKeys („heslo“));
Krok 2 : Pomocou kľúčových funkcií prejdite na element.
driver.findElement (By.id ( „Heslo“ )). sendKeys (Klávesy. VSTÚPTE ));
alebo
driver.findElement (By.id ( „Heslo“ )). sendKeys (Klávesy. TAB ));
Záver
Webové tabuľky, rámce a dynamické prvky sú nevyhnutnou súčasťou každého webového projektu. Pre spracovanie webových tabuliek a dynamických prvkov je vždy žiaduce napísať efektívny kód.
Pochopenie konštrukcie generického XPath, čo je veľmi užitočné pri práci s dynamickými prvkami. V prípade rámca musí váš skript rám prepnúť a potom pracovať s elementom.
Ďalší tutoriál č. 19 : V nasledujúcom výučbe selénu sa naučíme o typoch výnimiek a o tom, ako zaobchádzať s výnimkami v jave v selénových skriptoch.
Zašlite vaše dotazy týkajúce sa webových tabuliek, rámcov a spracovania dynamických prvkov, ak nejaké máte.
Odporúčané čítanie
- Ako nájsť prvky v prehliadačoch Chrome a IE na vytváranie skriptov selénu - selénský tutoriál # 7
- Používanie triedy výberu selénu na prácu s prvkami rozbaľovacej ponuky na webovej stránke - Výučba selénu č. 13
- Selénové lokátory: Identifikácia webových prvkov pomocou XPath v seléne (príklady)
- Ako používať selektor CSS na identifikáciu webových prvkov pre skripty selénu - selén - návod č. 6
- Skontrolujte viditeľnosť webových prvkov pomocou rôznych typov príkazov WebDriver - selén - návod č. 14
- Výukový program Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- Integrácia selénu s JMeter
- Zaobchádzanie s prvkami iFrames pomocou metódy switchTo () selénu WebDriver