handling web tables frames
In de laatste Selenium WebDriver-zelfstudie hebben we verschillende algemene en routinematig gebruikte Selenium WebDriver-opdrachten inclusief belangrijke onderwerpen zoals het omgaan met iframe en uitzonderingen in Selenium-scripts.
Vooruitgaan in onze uitgebreide reeks tutorials over Selenium , in deze tutorial zouden we bespreken omgaan met webtabellen, iframe en dynamische elementen die een essentieel onderdeel zijn van elk webproject.
Deze tutorial bestaat uit 3 verschillende onderwerpen en hun behandelingsmechanismen in seleniumscript.
- Webtabellen / HTML-tabellen
- Frames
- Dynamische elementen
Wat je leert:
- # 1) Webtabellen / HTML-tabellen
- # 2) Frames
- # 3) Dynamische elementen
- Gevolgtrekking
- Aanbevolen literatuur
# 1) Webtabellen / HTML-tabellen
In deze module leren we over webtabellen of HTML-tabellen in een webpagina, tags die beschikbaar zijn in HTML en hoe we dynamisch met webtabellen kunnen omgaan.
Webtabellen zijn in feite een groep elementen die logisch zijn opgeslagen in een rij- en kolomindeling. Het wordt gebruikt om vergelijkbare informatie op een webpagina te organiseren.
Hieronder ziet u een voorbeeld van een html-tabel:
Hieronder ziet u het fragment van de HTML-structuur van een HTML-tabel:
De onderstaande tags worden over het algemeen gedefinieerd in html-tabellen:
1. 'tabel'-tag definieert de HTML-tabel.
2. 'tbody' tag definieert een container voor rijen en kolommen.
3. 'tr' definieert rijen in een HTML-tabel.
4. ‘td ’/’ th ’definiëren de kolom van een HTML-tabel.
Zoek de details van een webtabel:
Er zijn veel manieren waarop we een webtafel kunnen hanteren.
unix interviewvragen en antwoorden pdf
Aanpak # 1
Hieronder staat het xpath van een van de cellen in de html-tabel. Laten we zeggen 'voornaam'
// div (@ id = ’main’) / table (1) / tbody / tr (1) / th (1)
tr (1) definieert de eerste rij en th (1) definieert de eerste kolom.
Als een aantal rijen en kolommen altijd constant is, laten we zeggen dat onze HTML-tabel altijd 5 rijen en 3 kolommen heeft.
Behalve het rij- en kolomnummer blijft elk onderdeel van XPath hetzelfde. U kunt dus herhalen met 'for loop' voor elke rij en kolom zoals hierboven vermeld.
Aanpak # 2
De eerste benadering is het meest geschikt voor de tafel die de afmetingen niet verandert en altijd hetzelfde blijft. De bovenstaande benadering zal geen perfecte oplossing zijn voor het dynamisch veranderen van webtabellen.
Laten we de bovenstaande HTML-tabel als voorbeeld nemen:
Stap 1 : Haal eerst de volledige HTML-tabel op en sla deze op in een variabel ‘htmltable’ van het type webelement.
Stap 2 : Haal alle rijen met de tagnaam ‘tr’ op en sla alle elementen op in een lijst met webelementen. Nu worden alle elementen met de tag ‘tr’ opgeslagen in de lijst ‘rijen’.
Stap 3 : Loop door elke rij en krijg de lijst met elementen met tag ‘Th’. ‘Rijen.get (0)’ geeft de eerste rij en ‘FindElements (By.tagName ( 'Th' geeft een lijst met kolommen voor de rij.
Stap 4 : Herhaal het gebruik ‘Columns.getsize ()’ en krijg de details van elke cel.
Notitie : De bovenstaande benadering is het meest geschikt als de tafelafmetingen dynamisch veranderen.
Dit besluit het onderwerp hoe om te gaan met webtabellen in selenium. Vervolgens zullen we leren hoe we een element in een frame moeten hanteren.
# 2) Frames
In dit gedeelte leren we over de frames op een webpagina en hoe u de frames kunt identificeren. We zullen ook ontdekken hoe we met een frame in Selenium WebDriver kunnen omgaan.
Veel ontwikkelaars plaatsen graag elementen in een frame. Het frame is net een container waarin weinig elementen kunnen worden gegroepeerd.
Identificatie van een frame:
Verschillende manieren om te weten of het element in een frame aanwezig is of niet
# 1 Klik met de rechtermuisknop op het element. Controleer of de optie 'This Frame' beschikbaar is. Als deze frame-optie beschikbaar is, betekent dit dat het element zich in een frame bevindt.
#twee Bekijk de paginabron van de webpagina en controleer of er een tag beschikbaar is voor ‘iframe’.
hoe mkv-bestanden op Windows te openen
Controleer het aantal frames op een webpagina
Alle frames hebben de tagnaam 'iframe'.
Lijst frameList = driver.findElements (By.tagName ( 'Iframe'
System.out.println (frameList.size ());
In bovenstaand voorbeeld frameList heeft alle lijsten met frames en frameList.size () geeft het aantal frames.
Omgaan met een element in het frame:
Als een element zich in een frame bevindt, moet de besturing eerst naar frame overschakelen en vervolgens beginnen met het bedienen van de elementen.
Stap 1 : Om binnen een frame te wisselen:
driver.switchTo (). frame (1); // geef framenummer door als parameter.
of
driver.switchTo (). frame ('framenaam'); // geef framenaam door als parameter.
of
driver.switchTo (). frame ('xpad van het frame');
Stap 2 : Na het omschakelen binnen een frame kan selenium op elementen werken.
driver.findElement (
driver.findElement (
Hier hebben we geleerd hoe we met een element in een frame moeten omgaan en vervolgens zullen we de verschillende manieren bespreken om met een dynamisch element om te gaan.
# 3) Dynamische elementen
In deze sectie zullen we verschillende manieren leren om met dynamische elementen om te gaan en generiek Xpath te construeren.
In enkele scenario's veranderen elementkenmerken dynamisch. Het kan ‘id’, ’naam’ enz. Zijn.
Voorbeeld : laten we zeggen dat ‘id’ van een gebruikersnaamveld ‘gebruikersnaam_123’ is en de XPath zal dat zijn
// * (@ id = ’gebruikersnaam_123 ′) maar wanneer u de pagina opnieuw opent, is het ‘id’ van het veld ‘gebruikersnaam’ mogelijk gewijzigd en kan de nieuwe waarde ‘gebruikersnaam_234’ zijn.
In dit geval zal de test mislukken omdat het selenium de XPath die u eerder bent gepasseerd niet kon vinden omdat de id van het veld is gewijzigd in een andere waarde.
Er zijn veel benaderingen, afhankelijk van het type probleem:
Probleemtype 1 Als een deel van de attribuutwaarde verandert
Voorbeeld : Net als in het bovenstaande voorbeeld verandert de id-waarde, maar blijven enkele velden constant.
‘Gebruikersnaam_123’ is gewijzigd in ‘gebruikersnaam_234’ maar ‘gebruikersnaam’ is altijd constant gebleven.
U kunt xpath construeren zoals hieronder:
driver.findElement (By.xpath ( '// * (bevat (@ id,’ gebruikersnaam ’))' )). sendKeys ( 'Gebruikersnaam'
bestuurder findElement (By.xpath ( '// * (begint met (@ id,’ gebruiker ’))' )). sendKeys ( 'Gebruikersnaam'
‘Bevat’ is een java-methode die controleert of id de gebruikersnaam van de substring bevat.
begint met() controleert of een kenmerk begint met 'gebruiker'.
Probleemtype 2 Als de volledige waarde van het kenmerk dynamisch verandert.
Nogmaals, in dit geval kunnen er verschillende benaderingen zijn:
selenium interviewvragen en antwoorden voor ervaren
Bijvoorbeeld : als id van ‘login’ -veld dynamisch verandert en er geen constante waarde is om te gebruiken bevat methode.
Oplossing : Gebruik van sendKeys.
Selenium biedt verschillende API om functietoetsen te gebruiken. Bijvoorbeeld tab-toets, enter-toetsen, F5 etc.
Stap 1 : Voer wachtwoord in
driver.findElement (By.id ( 'wachtwoord' )). sendKeys ('wachtwoord'));
Stap 2 : Gebruik de belangrijkste functies om naar het element te navigeren.
driver.findElement (By.id ( 'wachtwoord' )). sendKeys (Keys. ENTER
of
driver.findElement (By.id ( 'wachtwoord' )). sendKeys (Keys. TAB
Gevolgtrekking
Webtabellen, frames en dynamische elementen zijn een essentieel onderdeel van elk webproject. Het is altijd wenselijk om effectieve code te schrijven om webtabellen en dynamische elementen te verwerken.
De constructie van generieke XPath begrijpen, wat erg handig is bij het omgaan met dynamische elementen. In het geval van een frame, moet uw script het frame wisselen en vervolgens op het element werken.
Volgende tutorial # 19 : In de volgende Selenium-tutorial zullen we leren over soorten uitzonderingen en hoe om te gaan met uitzonderingen in java in Selenium-scripts.
Plaats alstublieft uw vragen met betrekking tot webtabellen, frames en het omgaan met dynamische elementen als u die heeft.
Aanbevolen literatuur
- Elementen zoeken in Chrome- en IE-browsers voor het bouwen van Selenium-scripts - Selenium-zelfstudie # 7
- Gebruik van Selenium Selecteer klasse voor het omgaan met vervolgkeuzelijsten op een webpagina - Selenium-zelfstudie # 13
- Seleniumzoekers: identificeer webelementen met XPath in selenium (voorbeelden)
- CSS Selector gebruiken voor het identificeren van webelementen voor Selenium-scripts - Selenium-zelfstudie # 6
- Controleer de zichtbaarheid van webelementen met behulp van verschillende typen WebDriver-opdrachten - Selenium Tutorial # 14
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- Integratie van selenium met JMeter
- Omgaan met iFrames met behulp van de Selenium WebDriver switchTo () -methode