handling web tables frames
V zadnji vadnici za Selenium WebDriver smo se naučili različnih pogostih in rutinsko uporablja ukaze Selenium WebDriver vključno s pomembnimi temami, kot so ravnanje z iframejem in izjemami v scenarijih Selenium.
Korak naprej v naši celoviti serija vaj o selenu , v tej vadnici bi razpravljali o obdelava spletnih tabel, iframe in dinamičnih elementov ki so bistveni del katerega koli spletnega projekta.
Ta vadnica je sestavljena iz treh različnih tem in mehanizmov njihovega ravnanja v scenariju selena.
- Spletne tabele / tabele HTML
- Okvirji
- Dinamični elementi
Kaj se boste naučili:
# 1) Spletne tabele / HTML tabele
V tem modulu bomo spoznali spletne tabele ali tabele HTML na spletni strani, oznake, ki so na voljo v HTML-ju, in kako dinamično ravnati s spletnimi tabelami.
Spletne tabele so v bistvu skupina elementov, ki so logično shranjeni v obliki vrstic in stolpcev. Uporablja se za organiziranje podobnih informacij na spletni strani.
Spodaj je primer tabele Html:
Spodaj je delček strukture HTML tabele HTML:
Spodaj oznake so običajno opredeljene v tabelah html:
1.’table ’označuje tabelo HTML.
2.'tbody 'tag definira vsebnik za vrstice in stolpce.
3.'tr ’definira vrstice v tabeli HTML.
4.'td / th th določa stolpec tabele HTML.
Poiščite podrobnosti spletne tabele:
Obstaja veliko načinov, kako ravnati s spletno tabelo.
kateri je najboljši brezplačni požarni zid
Pristop # 1 :
Spodaj je xpath ene od celic v tabeli html. Recimo 'ime'
// div (@ id = ’main’) / tabela (1) / tbody / tr (1) / th (1)
tr (1) definira prvo vrstico, th (1) pa prvi stolpec.
Če je število vrstic in stolpcev vedno konstantno, recimo, da bo naša tabela HTML vedno imela 5 vrstic in 3 stolpce.
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+”)”))); } }
Vsaka komponenta XPath, razen številke vrstic in stolpcev, ostane enaka. Tako lahko ponovite z uporabo for for za vsako vrstico in stolpec, kot je navedeno zgoraj.
Pristop # 2 :
Prvi pristop je najbolj primeren za mizo, ki ne spremeni svojih dimenzij in ostane vedno enaka. Zgoraj navedeni pristop ne bo popolna rešitev za dinamično spreminjanje spletnih tabel.
Za primer vzemimo zgornjo tabelo HTML:
WebElement htmltable=driver.findElement(By.xpath('//*(@id='main')/table(1)/tbody')); List rows=htmltable.findElements(By.tagName('tr')); for(int rnum=0;rnum Korak 1 : Najprej dobite celotno tabelo HTML in jo shranite v spremenljivko 'htmltable' tipa spletni element.
2. korak : Pridobite vse vrstice z imenom oznake „tr“ in shranite vse elemente na seznam spletnih elementov. Zdaj so vsi elementi z oznako 'tr' shranjeni na seznamu 'vrstic'.
3. korak : Preglejte vsako vrstico in dobite seznam elementov z oznako „Th“. ‘Row.get (0)’ bo dal prvo vrstico in ‘FindElements (By.tagName ( 'Th' )) ' bo dal seznam stolpcev za vrstico.
4. korak : Ponovite uporabo ‘Columns.getsize ()’ in dobite podrobnosti o vsaki celici.
Opomba : Zgornji pristop bo najbolj primeren, če se dimenzije tabele dinamično spreminjajo.
S tem je zaključena tema, kako ravnati s spletnimi tabelami v selenu. Nato se bomo naučili ravnanja z elementom znotraj okvirja.
# 2) Okvirji
V tem poglavju bomo izvedeli več o okvirih na spletni strani in kako prepoznati okvire. Ugotovili bomo tudi, kako lahko obdelujemo okvir v programu Selenium WebDriver.
Mnogi razvijalci radi umeščajo elemente v okvir. Okvir je tako kot posoda, kjer je mogoče združiti malo elementov.
Identifikacija okvira:
Različni načini, kako vedeti, ali je element prisoten v okvirju ali ne
# 1 . Z desno miškino tipko kliknite element. Preverite, ali je na voljo možnost »Ta okvir«. Če je na voljo možnost Ta okvir, to pomeni, da je element znotraj okvira.
#dve . Oglejte si vir strani in preverite, ali je na voljo katera koli oznaka za „iframe“.
vprašanja in odgovori za pogovore s poslovnimi predmeti

Preveri število okvirjev na spletni strani :
Vsi okvirji imajo ime oznake kot 'iframe'.
Seznam frameList = driver.findElements (By.tagName ( 'Iframe' ));
System.out.println (frameList.size ());
V zgornjem primeru : frameList bo imel ves seznam okvirjev in frameList.size () bo podalo število okvirjev.
Ravnanje z elementom znotraj okvirja:
Če je element znotraj okvirja, mora nadzor najprej preklopiti na okvir in nato začeti delovati na elementih.
Korak 1 : Za preklop znotraj okvirja:
driver.switchTo (). frame (1); // kot parameter posredujemo številko okvirja.
ali
driver.switchTo (). frame (“ime okvira”); // podajamo ime okvira kot parameter.
ali
driver.switchTo (). frame (“xpath of frame”);
2. korak : Po preklopu znotraj okvirja bo selen lahko deloval na elementih.
driver.findElement ( // **********************************************);
driver.findElement ( // *********************************************);
Tu smo se naučili, kako ravnati z elementom znotraj okvirja, nato pa bomo obravnavali različne načine obdelave dinamičnega elementa.
# 3) Dinamični elementi
V tem poglavju se bomo naučili različnih načinov ravnanja z dinamičnimi elementi in konstruiranja generičnega Xpath-a.
V nekaj scenarijih se atributi elementov dinamično spreminjajo. Lahko je ‘id’, ‘name’ itd.
Primer : recimo, da je 'id' polja z uporabniškim imenom 'username_123' in bo XPath
// * (@ id = ’uporabniško ime_123 ′) ko pa znova odprete stran, se je polje 'id' polja 'username' morda spremenilo in nova vrednost je lahko 'username_234'.
V tem primeru test ne bo uspel, ker selen ni mogel najti XPath-a, ki ste ga že opravili, saj se je ID polja spremenil v neko drugo vrednost.
Obstaja veliko pristopov, odvisno od vrste problema:
Tip težave 1: Če se del vrednosti atributa spremeni .
Primer : Kot v zgornjem primeru se vrednost id spreminja, vendar le malo polj ostaja konstantno.
'Uporabniško ime_123' se je spremenilo v 'uporabniško ime_234', vendar je 'uporabniško ime' vedno ostalo nespremenjeno.
Xpath lahko sestavite kot spodaj:
driver.findElement (By.xpath ( '// * (vsebuje (@ id, 'uporabniško ime'))' )). sendKeys ( 'Uporabniško ime' );
voznik . findElement (By.xpath ( '// * (začne se z (@ id, 'uporabnik'))' )). sendKeys ( 'Uporabniško ime' );
„Vsebuje“ je metoda Java, ki preveri, ali id vsebuje uporabniško ime podniz.
začne se z () preveri, ali se kateri koli atribut začne z 'uporabnik'.
Tip težave 2: Če se celotna vrednost atributa dinamično spremeni.
Tudi v tem primeru bi lahko obstajali različni pristopi:
Na primer : če se id polja 'prijava' dinamično spreminja in ni konstantne vrednosti za uporabo vsebuje metodo.
Rešitev : Uporaba sendKeys.
Selen ponuja drugačen API za uporabo funkcijskih tipk. Na primer tipka za zavihek, tipke za vnos, F5 itd.
Korak 1 : Vnesite geslo
driver.findElement (By.id ( 'Geslo' )). sendKeys (»geslo«));
2. korak : Za navigacijo do elementa uporabite ključne funkcije.
driver.findElement (By.id ( 'Geslo' )). sendKeys (tipke. ENTER ));
ali
driver.findElement (By.id ( 'Geslo' )). sendKeys (tipke. TAB ));
kako ustvariti java program v eclipse -
Zaključek
Spletne tabele, okviri in dinamični elementi so bistveni del vsakega spletnega projekta. Vedno je zaželeno napisati učinkovito kodo za obdelavo spletnih tabel in dinamičnih elementov.
Razumevanje konstrukcije generičnega XPath, ki je zelo koristno pri ravnanju z dinamičnimi elementi. V primeru okvirja mora vaš skript preklopiti okvir in nato delovati na elementu.
Naslednja vadnica št : V naslednji vaji o selenu se bomo naučili o vrstah izjem in kako ravnati z izjemami v javi v skripti Selenium.
Prosimo, objavite poizvedbe, povezane s spletnimi tabelami, okvirji in ravnanjem z dinamičnimi elementi, če jih imate.
Priporočeno branje
- Kako poiskati elemente v brskalnikih Chrome in IE za izdelavo skriptov za selen - Vadnica za selen št. 7
- Uporaba razreda selena za izbiro spustnih elementov na spletni strani - vadnica za selenij št. 13
- Lokatorji selena: prepoznavanje spletnih elementov s pomočjo XPath v selenu (primeri)
- Kako uporabljati izbirnik CSS za prepoznavanje spletnih elementov za skripte za selen - Vadnica za selen št. 6
- Preverite vidnost spletnih elementov z različnimi vrstami ukazov WebDriver - Vadnica za selen št. 14
- Vadnica za kumare selena: Integracija kumar Java Selenium WebDriver
- Integracija selena z JMeter
- Ravnanje z okvirji iFram s pomočjo metode SeleTonov WebDriver switchTo ()