handling web tables frames
I den siste Selenium WebDriver-opplæringen lærte vi forskjellige ofte og rutinemessig brukte Selenium WebDriver-kommandoer inkludert viktige emner som håndtering av iframe og unntak i Selenium-skript.
Gå videre i vårt omfattende serie opplæringsprogrammer om Selen , i denne veiledningen vil vi diskutere om håndtering av webtabeller, iframe og dynamiske elementer som er en viktig del av ethvert webprosjekt.
Denne opplæringen består av 3 forskjellige emner og deres håndteringsmekanismer i selenskript.
- Webtabeller / HTML-tabeller
- Rammer
- Dynamiske elementer
Hva du vil lære:
# 1) Nettbord / HTML-tabeller
I denne modulen vil vi lære om webtabellene eller HTML-tabellene på en webside, koder tilgjengelig i HTML og hvordan du håndterer webtabeller dynamisk.
Webtabeller er i utgangspunktet en gruppe av elementer som logisk lagres i rad- og kolonneformat. Den brukes til å organisere lignende informasjon på en webside.
Nedenfor er et eksempel på HTML-tabellen:
Nedenfor er HTML-strukturen til en HTML-tabell:
Koder nedenfor er generelt definert i html-tabeller:
1.'table-tag definerer HTML-tabell.
2.'tbody ’tag definerer en container for rader og kolonner.
3.’tr ’definerer rader i en HTML-tabell.
4.'td '/' th 'definer kolonnen i en HTML-tabell.
Finn detaljene i et nettbord:
Det er mange måter vi kan håndtere et nettbord på.
soapui testing intervju spørsmål og svar
Tilnærming # 1 :
Nedenfor er xpath av en av cellen i html-tabellen. La oss si 'fornavn'
// div (@ id = ’main’) / tabell (1) / tbody / tr (1) / th (1)
tr (1) definerer første rad og th (1) definerer første kolonne.
Hvis et antall rader og kolonner alltid er konstante, la oss si at HTML-tabellen vår alltid vil ha 5 rader og 3 kolonner.
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+”)”))); } }
Med unntak av rad- og kolonnenummer forblir hver komponent i XPath den samme. Så du kan gjenta med 'for loop' for hver rad og kolonne som nevnt ovenfor.
Tilnærming # 2 :
Den første tilnærmingen er best egnet for bordet som ikke endrer dimensjonene og alltid forblir den samme. Ovennevnte tilnærming vil ikke være en perfekt løsning for dynamisk endring av nettabeller.
La oss ta over HTML-tabellen som et eksempel:
WebElement htmltable=driver.findElement(By.xpath('//*(@id='main')/table(1)/tbody')); List rows=htmltable.findElements(By.tagName('tr')); for(int rnum=0;rnum Trinn 1 : Hent først hele HTML-tabellen og lagre denne i en variabel ‘htmltable’ av typen webelement.
Steg 2 : Få alle radene med taggenavnet ‘tr’ og lagre alle elementene i en liste over webelementer. Nå er alle elementene med tag ‘tr’ lagret i ‘rader’ -listen.
Trinn 3 : Gå gjennom hver rad og få listen over elementer med tag ‘Th’. ‘Rows.get (0)’ vil gi første rad og ‘FindElements (By.tagName ( “Th” )) ' vil gi en liste over kolonner for raden.
Trinn 4 : Iterere bruk ‘Columns.getsize ()’ og få detaljene i hver celle.
Merk : Ovenstående tilnærming vil være best egnet hvis tabelldimensjonene endres dynamisk.
Dette avslutter temaet hvordan man håndterer nettbord i selen. Deretter vil vi lære om håndtering av et element i en ramme.
# 2) Rammer
I denne delen vil vi lære om rammene på en webside og hvordan du identifiserer rammene. Vi vil også finne ut hvordan vi kan håndtere en ramme i Selenium WebDriver.
Mange utviklere liker å plassere elementer inne i en ramme. Rammen er akkurat som en container der få elementer kan grupperes.
Identifikasjon av en ramme:
Ulike måter å vite om elementet er tilstede i en ramme eller ikke
#1 . Høyreklikk på elementet. Sjekk om alternativet “Denne rammen” er tilgjengelig. Hvis dette rammealternativet er tilgjengelig, betyr det at elementet er inne i en ramme.
#to . Vis sidekilde for websiden og sjekk om noen tagger er tilgjengelige for ‘iframe’.
sql intervju spørsmål og svar for ferskere pdf

Bekreft antall rammer på en webside :
Alle rammene har taggenavnet som “iframe”.
List frameList = driver.findElements (By.tagName ( 'Iframe' ));
System.out.println (frameList.size ());
I eksemplet ovenfor : rammeliste vil ha hele listen over rammer og frameList.size () vil gi antall rammer.
Håndtering av et element inne i rammen:
Hvis et element er inne i en ramme, må kontrollen først bytte til ramme og deretter begynne å operere på elementene.
Trinn 1 : Slik bytter du inne i en ramme:
driver.switchTo (). ramme (1); // pass frame number som parameter.
eller
driver.switchTo (). frame (“frame Name”); // pass rammenavn som parameter.
eller
driver.switchTo (). ramme (“xpath of the frame”);
Steg 2 : Etter endring i en ramme vil selen kunne fungere på elementer.
nettutviklerintervju spørsmål og svar
driver.findElement ( // *************************************);
driver.findElement ( // *************************************);
Her har vi lært hvordan vi skal håndtere et element inne i rammen, og deretter vil vi dekke om de forskjellige måtene å håndtere dynamisk element på.
# 3) Dynamiske elementer
I denne delen vil vi lære forskjellige måter å håndtere dynamisk element og konstruere generisk Xpath.
I få scenarier endres elementattributter dynamisk. Det kan være 'id', 'navn' osv.
Eksempel : la oss si at 'id' til et brukernavnfelt er 'brukernavn_123', og XPath vil være det
// * (@ id = ’brukernavn_123 ′) men når du åpner siden igjen, kan det hende at 'id' i 'brukernavn' -feltet har endret seg, og den nye verdien kan være 'brukernavn_234'.
I dette tilfellet mislykkes testen fordi selen ikke kunne finne XPath du har bestått tidligere, siden ID-en til feltet har endret seg til en annen verdi.
Det er mange tilnærminger avhengig av typen problem:
Problem Type 1: Hvis en del av attributtverdien endres .
Eksempel : Som i eksemplet ovenfor, endres ID-verdien, men få felt forblir konstante.
'Brukernavn_123' endret til 'brukernavn_234', men 'brukernavn' forble alltid konstant.
Du kan konstruere xpath som nedenfor:
driver.findElement (By.xpath ( “// * (inneholder (@ id,‘ brukernavn ’))” sendKeys ( “Brukernavn” );
sjåfør . findElement (By.xpath ( “// * (starter med (@ id,’ bruker ’))” sendKeys ( “Brukernavn” );
‘Inneholder’ er en java-metode som sjekker om id inneholder substring-brukernavnet.
begynner med() sjekker om noen attributter starter med “bruker”.
Problem Type 2: Hvis hele verdien av attributtet endres dynamisk.
Igjen, i dette tilfellet kan det være forskjellige tilnærminger:
For eksempel : hvis id for 'påloggingsfeltet endres dynamisk og det ikke er noen konstant verdi å bruke inneholder metoden.
Løsning : Bruk av sendKeys.
Selen har forskjellige API-er for å bruke funksjonstaster. For eksempel tabulatortast, skriv inn nøkler, F5 etc.
Trinn 1 : Oppgi passord
driver.findElement (By.id ( 'passord' sendKeys (“passord”));
Steg 2 : Bruk nøkkelfunksjoner for å navigere til elementet.
driver.findElement (By.id ( 'passord' sendKeys (nøkler. TAST INN ));
eller
driver.findElement (By.id ( 'passord' sendKeys (nøkler. TAB ));
Konklusjon
Nettbord, rammer og dynamiske elementer er viktig del av ethvert webprosjekt. Det er alltid ønskelig å skrive effektiv kode for å håndtere nettbord og dynamiske elementer.
Forstå konstruksjonen av generisk XPath som er veldig nyttig når du håndterer dynamiske elementer. I tilfelle en ramme, må skriptet ditt bytte ramme og deretter operere på elementet.
Neste opplæring # 19 : I neste Selen-opplæring vil vi lære om typer unntak og hvordan man håndterer unntak i java i Selenium-skript.
Vennligst legg inn spørsmålene dine relatert til nettabeller, rammer og håndtering av dynamisk element hvis du har noen.
Anbefalt lesing
- Hvordan finne elementer i Chrome- og IE-nettlesere for å bygge selen-skript - Veiledning nr. 7
- Bruk av Selen Select Class for håndtering av nedtrekkselementer på en webside - Selenium Tutorial # 13
- Selen Locators: Identifiser nettelementer ved hjelp av XPath i Selen (eksempler)
- Slik bruker du CSS Selector for å identifisere webelementer for selenskripter - Selen-opplæring # 6
- Kontroller synligheten til nettelementer ved hjelp av forskjellige typer WebDriver-kommandoer - Selenium-veiledning nr. 14
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- Integrering av selen med JMeter
- Håndtere iFrames ved hjelp av Selenium WebDriver switchTo () -metoden