Vad är Selen Webdriver?
Selenium Webdriver är en öppen källkodssamling av API: er som används för att testa webbapplikationer. Selenium Webdriver-verktyget används för att automatisera test av webbapplikationer för att verifiera att det fungerar som förväntat eller inte. Den stöder främst webbläsare som Firefox, Chrome, Safari och Internet Explorer. Det tillåter dig också att köra webbläsartestning.
WebDriver gör det också möjligt för dig att använda ett programmeringsspråk när du skapar dina testskript (inte möjligt i Selen IDE).
Du kan nu använda villkorliga operationer som if-then-else eller switch-case. Du kan också utföra looping som do-while.
Följande programmeringsspråk stöds av WebDriver
- Java
- .Netto
- PHP
- Pytonorm
- Perl
- Rubin
Du behöver inte känna till dem alla. Du behöver bara vara kunnig i ett. I denna handledning använder vi dock Java med Eclipse som vår IDE.
Skillnad mellan Selen RC och Webdriver
Innan WebDriver kom till 2006 fanns det ett annat automatiseringsverktyg som heter Selenium Remote Control. Både WebDriver och Selenium RC har följande funktioner:
- Båda låter dig använda ett programmeringsspråk när du utformar dina testskript.
- Båda låter dig köra dina tester mot olika webbläsare.
Så hur skiljer de sig åt? Låt oss diskutera svaren.
1. Arkitektur
WebDrivers arkitektur är enklare än Selenium RC .
- Den styr webbläsaren från OS-nivå
- Allt du behöver är ditt programmeringsspråk IDE (som innehåller dina Selenium-kommandon) och en webbläsare.
Selenium RCs arkitektur är mycket mer komplicerad.
- Du måste först starta en separat applikation som heter Selenium Remote Control (RC) Server innan du kan börja testa
- Selenium RC Server fungerar som en "mellanhand" mellan dina Selenium-kommandon och din webbläsare
- När du börjar testa "injicerar" Selenium RC Server ett Javascript-program som heter Selenium Core i webbläsaren.
- När Selenium Core är injicerat kommer det att ta emot instruktioner som vidarebefordras av RC-servern från ditt testprogram.
- När instruktionerna tas emot kommer Selenium Core att köra dem som Javascript-kommandon.
- Webbläsaren följer instruktionerna från Selenium Core och kommer att vidarebefordra sitt svar till RC-servern.
- RC-servern får webbläsarens svar och visar sedan resultaten för dig.
- RC Server hämtar nästa instruktion från testskriptet för att upprepa hela cykeln.
2. Hastighet
WebDriver är snabbare än Selenium RC eftersom det talar direkt till webbläsaren använder webbläsarens egen motor för att styra den.
Selenium RC är långsammare eftersom det använder ett Javascript-program som heter Selenium Core. Den här Selenium Core är den som direkt kontrollerar webbläsaren, inte du.
3. Verklig interaktion
WebDriver interagerar med sidelement på ett mer realistiskt sätt. Till exempel, om du har en inaktiverad textruta på en sida som du testade, kan WebDriver verkligen inte ange något värde i den precis som hur en riktig person inte kan.
Selenium Core, precis som andra JavaScript-koder, kan komma åt inaktiverade element. Tidigare klagade Selenium-testare på att Selenium Core kunde skriva in värden i en inaktiverad textruta i sina tester. Skillnader i API
4. API

Selenium RC: s API är mognad men innehåller uppsägningar och ofta förvirrande kommandon . Till exempel är testare för det mesta förvirrade om de ska använda typ eller typeKeys; eller om du vill använda click, mouseDown eller mouseDownAt. Värre är att olika webbläsare tolkar var och en av dessa kommandon på olika sätt också!
WebDrivers API är enklare än Selenium RC . Den innehåller inte överflödiga och förvirrande kommandon.
5. Webbläsarstöd
WebDriver kan stödja den headless HtmlUnit-webbläsaren
HtmlUnit kallas "headless" eftersom det är en osynlig webbläsare - den är GUI-mindre.
Det är en mycket snabb webbläsare eftersom ingen tid spenderas på att vänta på att sidelement ska laddas. Detta accelererar dina testkörningscykler.
Eftersom det är osynligt för användaren kan det endast styras med automatiserade medel.
Selen RC kan inte stödja den headless HtmlUnit-webbläsaren. Det behöver en riktig, synlig webbläsare för att fungera.
Begränsningar av WebDriver
WebDriver kan inte enkelt stödja nya webbläsare
Kom ihåg att WebDriver fungerar på OS-nivå. Kom också ihåg att olika webbläsare kommunicerar med operativsystemet på olika sätt. Om en ny webbläsare kommer ut kan den ha en annan kommunikationsprocess med operativsystemet jämfört med andra webbläsare. Så du måste ge WebDriver-teamet ganska lång tid att räkna ut den nya processen innan de kan implementera den på nästa WebDriver-release.
Det är dock upp till WebDrivers team av utvecklare att avgöra om de ska stödja den nya webbläsaren eller inte.
Selen RC har inbyggd testresultatgenerator
Selen RC genererar automatiskt en HTML-fil med testresultat . Rapportformatet förinställdes av RC själv. Ta en titt på ett exempel på denna rapport nedan.
WebDriver har inget inbyggt kommando som automatiskt genererar en testresultatfil . Du måste lita på ditt IDE: s utgångsfönster eller utforma rapporten själv med hjälp av ditt programmeringsspråk och lagra den som text, HTML, etc.
Sammanfattning
- WebDriver är ett verktyg för att testa webbapplikationer i olika webbläsare med olika programmeringsspråk.
- Du kan nu göra kraftfulla tester eftersom WebDriver låter dig använda ett programmeringsspråk som du väljer när du utformar dina tester.
- WebDriver är snabbare än Selenium RC på grund av sin enklare arkitektur.
- WebDriver pratar direkt med webbläsaren medan Selenium RC behöver hjälp från RC Server för att göra det.
- WebDrivers API är mer koncis än Selenium RC.
- WebDriver kan stödja HtmlUnit medan Selenium RC inte kan.
- De enda nackdelarna med WebDriver är:
- Det kan inte enkelt stödja nya webbläsare , men Selenium RC kan.
- Det har inte ett inbyggt kommando för automatisk generering av testresultat.