Hvad er Selenium Webdriver?
Selenium Webdriver er en open source-samling af API'er, der bruges til test af webapplikationer. Selenium Webdriver-værktøjet bruges til at automatisere test af webapplikationer for at kontrollere, at det fungerer som forventet eller ej. Det understøtter hovedsageligt browsere som Firefox, Chrome, Safari og Internet Explorer. Det giver dig også mulighed for at udføre test på tværs af browsere.
WebDriver giver dig også mulighed for at bruge et programmeringssprog til at oprette dine testskripter (ikke mulig i Selen IDE).
Du kan nu bruge betingede operationer som if-then-else eller switch-case. Du kan også udføre looping som do-while.
Følgende programmeringssprog understøttes af WebDriver
- Java
- .Net
- PHP
- Python
- Perl
- Rubin
Du behøver ikke kende dem alle. Du skal bare være kyndig i en. I denne vejledning bruger vi dog Java med Eclipse som vores IDE.
Forskel mellem Selen RC og Webdriver
Før fremkomsten af WebDriver i 2006 var der et andet automatiseringsværktøj kaldet Selenium Remote Control. Både WebDriver og Selenium RC har følgende funktioner:
- De giver dig begge mulighed for at bruge et programmeringssprog til at designe dine testskripter.
- De giver dig begge mulighed for at køre dine tests mod forskellige browsere.
Så hvordan adskiller de sig? Lad os diskutere svarene.
1. Arkitektur
WebDrivers arkitektur er enklere end Selen RC .
- Det styrer browseren fra OS-niveau
- Alt hvad du behøver er dit programmeringssprogs IDE (som indeholder dine Selenium-kommandoer) og en browser.
Selenium RCs arkitektur er langt mere kompliceret.
- Du skal først starte en separat applikation kaldet Selenium Remote Control (RC) Server, før du kan begynde at teste
- Selenium RC Server fungerer som en "mellemmand" mellem dine Selenium-kommandoer og din browser
- Når du begynder at teste, "injicerer" Selenium RC Server et Javascript-program kaldet Selenium Core i browseren.
- Når den er injiceret, begynder Selenium Core at modtage instruktioner, der videreføres af RC Server fra dit testprogram.
- Når instruktionerne er modtaget, udfører Selenium Core dem som Javascript-kommandoer.
- Browseren overholder instruktionerne fra Selenium Core og videresender sit svar til RC Server.
- RC-serveren modtager browserens svar og viser derefter resultaterne for dig.
- RC Server henter den næste instruktion fra dit testscript for at gentage hele cyklussen.
2. Hastighed
WebDriver er hurtigere end Selenium RC, da den taler direkte til browseren bruger browserens egen motor til at kontrollere den.
Selen RC er langsommere, da den bruger et Javascript-program kaldet Selenium Core. Denne Selen Core er den, der direkte styrer browseren, ikke dig.
3. Virkelig interaktion
WebDriver interagerer med sideelementer på en mere realistisk måde. For eksempel, hvis du har et deaktiveret tekstfelt på en side, du testede, kan WebDriver virkelig ikke indtaste nogen værdi i det, ligesom hvordan en rigtig person ikke kan.
Selenium Core har, ligesom andre JavaScript-koder, adgang til deaktiverede elementer. Tidligere klagede Selenium-testere over, at Selen Core var i stand til at indtaste værdier i et deaktiveret tekstfelt i deres tests. Forskelle i API
4. API

Selenium RC's API er mere modnet, men indeholder afskedigelser og ofte forvirrende kommandoer . For eksempel er testere for det meste forvirrede, om de skal bruge type eller typeKeys; eller om du vil bruge click, mouseDown eller mouseDownAt. Værre, forskellige browsere fortolker også hver af disse kommandoer på forskellige måder!
WebDrivers API er enklere end Selen RC . Den indeholder ikke overflødige og forvirrende kommandoer.
5. Browsersupport
WebDriver kan understøtte den headless HtmlUnit-browser
HtmlUnit kaldes "hovedløs", fordi det er en usynlig browser - den er GUI-mindre.
Det er en meget hurtig browser, fordi der ikke bruges tid på at vente på, at sideelementer indlæses. Dette fremskynder dine testudførelsescyklusser.
Da det er usynligt for brugeren, kan det kun styres via automatiserede midler.
Selenium RC understøtter ikke den headless HtmlUnit-browser. Det har brug for en ægte, synlig browser til at fungere på.
Begrænsninger for WebDriver
WebDriver kan ikke let understøtte nye browsere
Husk, at WebDriver fungerer på OS-niveau. Husk også, at forskellige browsere kommunikerer med operativsystemet på forskellige måder. Hvis en ny browser kommer ud, kan den have en anden kommunikationsproces med operativsystemet sammenlignet med andre browsere. Så du er nødt til at give WebDriver-teamet noget tid til at finde ud af den nye proces, før de kan implementere den ved den næste WebDriver-udgivelse.
Det er dog op til WebDrivers team af udviklere at beslutte, om de skal støtte den nye browser eller ej.
Selen RC har indbygget testresultatgenerator
Selen RC genererer automatisk en HTML-fil med testresultater . Rapportens format blev forudindstillet af RC selv. Se et eksempel på denne rapport nedenfor.
WebDriver har ingen indbygget kommando, der automatisk genererer en testresultatfil . Du bliver nødt til at stole på din IDEs outputvindue eller designe rapporten selv ved hjælp af funktionerne i dit programmeringssprog og gemme den som tekst, HTML osv.
Resumé
- WebDriver er et værktøj til test af webapplikationer på tværs af forskellige browsere ved hjælp af forskellige programmeringssprog.
- Du er nu i stand til at lave kraftige tests, fordi WebDriver giver dig mulighed for at bruge et programmeringssprog efter eget valg til at designe dine tests.
- WebDriver er hurtigere end Selenium RC på grund af sin enklere arkitektur.
- WebDriver taler direkte til browseren, mens Selenium RC har brug for hjælp fra RC Server for at gøre det.
- WebDrivers API er mere kortfattet end Selen RC.
- WebDriver kan understøtte HtmlUnit, mens Selenium RC ikke kan.
- De eneste ulemper ved WebDriver er:
- Det understøtter ikke let nye browsere , men Selenium RC kan.
- Det har ikke en indbygget kommando til automatisk generering af testresultater.