Vad är Selenium? Introduktion Handledning
⚡ Smart sammanfattning
Selenium är ett kostnadsfritt, automatiserat testramverk med öppen källkod, utformat för att validera webbapplikationer över webbläsare och plattformar med hjälp av flera programmeringsspråk. Det möjliggör robust, effektiv och skalbar testautomatisering för moderna kvalitetssäkringsmetoder.

Vad är Selenium?
Selenium är ett gratis (öppen källkod) automatiserat testramverk som används för att validera webbapplikationer över olika webbläsare och plattformar. Du kan använda flera programmeringsspråk som Java, C#, Python, etc för att skapa Selenium Testskript. Testning gjord med hjälp av Selenium testverktyg brukar kallas Selenium Testning.
Expertinsikter
"Undvik att använda fasta vilolägesfördröjningar i dina tester. Använd istället explicita väntetider (som WebDriverWait) för att vänta på att element ska laddas. Detta gör dina skript mer tillförlitliga och snabbare, eftersom de reagerar dynamiskt på faktiska sidförhållanden – en viktig bästa praxis för studenter överallt, med början i Selenium. "
👉 Registrera dig för gratis livesändning Selenium Testprojekt
Selenium Tool Suite
Selenium Mjukvara är inte bara ett enda verktyg utan en svit av mjukvara, varje del tillgodoser olika Selenium QA-testningsbehov hos en organisation. Här är listan över verktyg
- Selenium Integrated Development Environment (IDE)
- Selenium Fjärrkontroll (RC)
- webbdrivrutin
- Selenium Rutnät
Just nu, Selenium RC och WebDriver slås samman till ett enda ramverk för att bildas Selenium 2. Selenium 1 hänvisar för övrigt till Selenium RC.
Video Tutorial Selenium
Klicka här. om videon inte är tillgänglig
Vem utvecklade Selenium?
Eftersom Selenium är en samling av olika verktyg, den hade också olika utvecklare. Nedan är nyckelpersonerna som gjort betydande bidrag till Selenium Projekt
Primärt, Selenium var skapad av Jason Huggins 2004Som ingenjör på ThoughtWorks arbetade han med en webbapplikation som krävde frekvent testning. Efter att ha insett att deras applikations repetitiva manuella testning blev alltmer ineffektiv skapade han en JavaScript program som automatiskt skulle styra webbläsarens handlingar. Han döpte detta program till "JavaScriptTestRunner.
Han såg potential i denna idé att hjälpa till att automatisera andra webbapplikationer JavaScriptRunner öppen källkod, som senare döptes om Selenium Kärna. För dem som är intresserade av att utforska andra alternativ för testning av webbapplikationer, ta en titt på dessa Selenium alternativ.
Problem med samma ursprungspolicy
Samma ursprungspolicy förbjuder JavaSkriptkod från att komma åt element från en domän som skiljer sig från där den lanserades. Till exempel använder HTML-koden i www.google.com en JavaSkriptprogrammet "randomScript.js". Samma ursprungspolicy tillåter endast randomScript.js åtkomst till sidor inom google.com, till exempel google.com/mail, google.com/login eller google.com/signup. Den kan dock inte komma åt sidor från olika webbplatser som yahoo.com/search eller guru99.com eftersom de tillhör olika domäner.
Detta är anledningen till att, innan Selenium RC, testare behövs för att installera lokala kopior av båda Selenium Kärna (a JavaSkriptprogram) och webbservern som innehåller webbapplikationen som testas, så de skulle tillhöra samma domän
Födelse av Selenium Fjärrkontroll (Selenium RC)
Tyvärr, testare som använder Selenium Core var tvungen att installera hela applikationen som testades och webbservern på sina egna lokala datorer på grund av begränsningarna som infördes av policy med samma ursprungSå en annan ThoughtWorks-ingenjör, Paul Hammant, bestämde sig för att skapa en server som skulle fungera som en HTTP-proxy för att "lura" webbläsaren att tro att Selenium Core och webbapplikationen som testas kommer från samma domän. Detta system blev känt som Selenium Fjärrstyrning or Selenium 1.
Födelse av Selenium Rutnät
Selenium Grid utvecklades av Patrick Lightbody för att tillgodose behovet av att minimera testkörningstider så mycket som möjligt. Han kallade initialt systemet "Värdbaserad kvalitetssäkring." Den kunde ta skärmdumpar från webbläsaren under viktiga skeden, och även av skickar ut Selenium kommandon till olika maskiner samtidigt.
Födelse av Selenium IDE
Shinya Kasatani av Japan skapat Selenium IDE, Firefox och Chrome-tillägg som kan automatisera webbläsaren genom en inspelnings- och uppspelningsfunktion. Han kom på den här idén för att ytterligare öka hastigheten på att skapa testfall. Han donerade Selenium IDE till Selenium Projekt in 2006.
WebDrivers födelse
Simon Stewart skapade WebDriver ca 2006 när webbläsare och webbapplikationer blev kraftfullare och mer restriktiva med JavaSkriptprogram som Selenium Kärna. Det var det första plattformsoberoende testramverket som kunde styra webbläsaren på operativsystemnivå.
Födelse av Selenium 2
In 2008, Hela Selenium Team beslutade att slå samman WebDriver och Selenium RC för att bilda ett kraftfullare verktyg som kallas Selenium 2, med WebDriver är kärnan. För närvarande, Selenium RC utvecklas fortfarande, men endast i underhållsläge. De flesta av Selenium Projektets insatser är nu fokuserade på Selenium 2.
Så varför namnet Selenium?
Namnet Selenium kom från ett skämt som Jason drog en gång för sitt team. Under Seleniums utveckling, en annan automatiserad testning ramverket tillverkades populärt av företaget som heter Mercury Interactive (ja, företaget som ursprungligen tillverkade QTP innan det förvärvades av HP). Sedan Selenium är ett välkänt motgift mot Mercury förgiftning, föreslog Jason det namnet och hans lagkamrater tog det. Så det var så vi fick kalla detta ramverk fram till nutid.
Vad är Selenium IDE?
Selenium Integrated Development Environment (IDE) är den enklaste ram i Selenium svit och är den lättaste att lära sig. Det är ett Chrome och Firefox plugin som du kan installera så enkelt du kan med andra plugins. Men på grund av sin enkelhet, Selenium IDE bör endast användas som en prototypping verktyg. Om du vill skapa mer avancerade testfall måste du använda antingen Selenium RC eller WebDriver.
Vad är Selenium Fjärrkontroll (Selenium RC)?
Selenium RC var ramverk för flaggskeppstestning av helheten Selenium projekt under lång tid. Detta är den första automatiserade webbtestning verktyg som tillåter användare att använda ett programmeringsspråk de föredrar. Från och med version 2.25.0 kan RC stödja följande programmeringsspråk:
Vad är WebDriver?
WebDriver visar sig vara bättre än Selenium IDE och Selenium RC i många aspekter. Den implementerar ett mer modernt och stabilt tillvägagångssätt för att automatisera webbläsarens åtgärder. WebDriver, till skillnad från Selenium RC, litar inte på JavaManus för Selenium Automationstestning. Den styr webbläsaren genom att direkt kommunicera med den.
De språk som stöds är desamma som de i Selenium RC.
- Java
- C#
- PHP
- Python
- Perl
- Rubin
Vad är Selenium Rutnät?
Selenium Grid är ett verktyg används tillsammans med Selenium RC att köra parallella tester på olika maskiner och olika webbläsare samtidigt. Parallell exekvering innebär att köra flera tester samtidigt.
Funktioner:
- möjliggör simultan körning av tester in flera webbläsare och miljöer.
- Sparar tid enormt.
- Använder nav-och-noder begrepp. Navet fungerar som en central källa till Selenium kommandon till varje nod som är ansluten till den.
Selenium Webbläsare och miljöstöd
På grund av deras arkitektoniska skillnader, Selenium SDI, Selenium RC och WebDriver stöder olika uppsättningar webbläsare och operativsystem.
| Selenium IDE | webbdrivrutin | |
|---|---|---|
| browser Support | Mozilla Firefox och Chrome | Google Chrome 12+ Firefox Internet Explorer 7+ och Edge Safari, HtmlUnit och PhantomUnit |
| Operating System | Windows, Mac OS X, Linux | Alla operativsystem där webbläsarna ovan kan köras. |
Obs: Opera Drivrutinen fungerar inte längre
Hur man väljer rätt Selenium Verktyg för dina behov
| Verktyget | Varför välja? |
|---|---|
| Selenium IDE |
|
| Selenium RC |
|
| webbdrivrutin |
|
| Selenium Rutnät |
|
Real-World Fallstudier
🔍 Fallstudie 1: Kompatibilitet mellan webbläsare för SaaS-instrumentpanelen
Scenario
Ett företag som erbjuder programvara som en tjänst förberedde sig för att släppa en analysinstrumentpanel som behövde fungera konsekvent i moderna webbläsare (Chrome, Firefox, Edge, Safari).
Utmaning
Manuell testning på varje webbläsare var tidskrävande, felbenägen och kunde inte hålla jämna steg med snabba utvecklingsiterationer.
Lösning med Selenium
En kvalitetssäkringsingenjör skapade en Selenium Rutnät konfigurerad för att köra samma testsvit samtidigt i flera webbläsare och operativsystemkombinationer. Testerna skapades i Python med hjälp av Selenium WebDriver för åtgärder som inloggning, diagramfiltrering och dataexport.
Resultat
- Minskad regressionsvaraktighet med 80 %.
- Upptäckte webbläsarspecifika renderingsfel tidigt (t.ex. feljusterade grafer i IE).
- Bibehöll en konsekvent dashboard-användarupplevelse i hela webbläsarmatrisen utan extra manuella cykler.
⚙️ Fallstudie 2: CI/CD-integration för webbapp via Selenium + TestNG
Scenario
Ett medelstort webbutvecklingsföretag förlitar sig på en CI/CD-pipeline med hjälp av JenkinsDe behövde säkerställa att användarnas kärnresor fungerade efter varje kodändring.
Utmaning
Nybyggda installationer avbröt ibland användarflöden – inloggning, formulärinlämning – escaping detektion fram till manuell testning vid dagens slut.
Lösning med Selenium
En testare implementerade en Java-Baserade Selenium WebDriver-sviten integrerad med TestNGTesterna omfattade autentisering, profiluppdateringar och sökfunktioner. Dessa kördes på alla Jenkins bygga, utnyttja parallell exekvering och webbläsarparametrisering.
Resultat
- Uppnådde felsnabb feedback: trasiga flöden flaggades omedelbart.
- Minskade buggar efter driftsättning med över 60 %.
- Gjorde det möjligt för utvecklare att åtgärda problem innan de nådde QA.
🚀 Fallstudie 3: Snabbare funktionslansering för Travel Aggregator
Scenario
En plattform för reseaggregatorer behövde lansera en omarbetad funktion för flygbokning. Manuella regressionstester över 10+ sidor tog dagar och blockerade lanseringen.
Utmaning
Pressen att minska tiden till marknaden kunde inte överstiga manuella testcykler, vilket riskerade förseningar eller lägre kvalitet.
Lösning med Selenium & Sidobjektmodell
En QA-automationschef introducerade en POM-struktur (Page Object Model) i C#. Selenium WebDriver-skript inkapslade sidelement och åtgärder (sök efter flygningar, tillämpa filter och betalningsärenden). Automatiserade testkörningar utlöstes varje natt på GitLab CI.
Resultat
- Testtiden minskade från 3 dagar till bara 4 timmar.
- Återanvändning av skript över flera funktioner minskar skriptarbetet med 50 %.
- Ökat förtroende: utgåvan levererades enligt schema med minimala buggrapporter.
Gemensam Selenium Utmaningar (och korrigeringar)
Även om Selenium är kraftfull, testare möter ofta utmaningar som kan påverka tillförlitlighet och hastighet. Här är några vanliga problem och hur man åtgärdar dem:
- Ojämna tester:
Tester kan misslyckas slumpmässigt på grund av timing- eller nätverksproblem.
Fixera: Använd tydliga väntetider och stabila positioner; undvikThread.sleep(). - Dynamiska webbelement:
Att ändra element-ID:n eller XPaths orsakar fel av typen element-not-found (element-not-found).
Fixera: Använd relativa XPaths, CSS-väljare eller dynamisk attributhantering. - SyncProblem med kronisering:
Element laddas långsammare än skriptkörning.
Fixera: Implementera WebDriverWait med förväntade villkor. - Inkonsekvenser mellan webbläsare:
Tester beter sig annorlunda i Chrome, Firefox, eller Edge.
Fixera: Kör tester på Selenium Grid- eller molnplattformar för validering mellan webbläsare. - Hantera popup-fönster och varningar:
Oväntade popup-fönster kan avbryta testflödet.
Fixera: Använda Selenium's Alert-gränssnitt eller försök att fånga block för att hantera dem smidigt. - Omkostnader för testunderhåll:
Frekventa gränssnittsändringar gör tester ömtåliga.
Fixera: Använd Page Object Model (POM) och versionskontroll för enkla uppdateringar. - Integrationsutmaningar:
CI/CD-pipelines kan misslyckas på grund av problem med drivrutiner.
Fixera: Använda Selenium Manager (Selenium 4+) eller WebDriver Manager för att automatiskt hantera drivrutiner.
Kort sagt: bro Selenium Problem härrör från dålig synkronisering eller spröda lokaliseringsanordningar – båda lösbara genom smartare väntetider, modulär design och kontinuerligt underhåll.




.png)
.jpg)
.jpg)
.jpg)



