Hva er Selenium? Introduksjonsopplæring
⚡ Smart oppsummering
Selenium er et gratis, åpen kildekode-rammeverk for automatisert testing, utviklet for å validere webapplikasjoner på tvers av nettlesere og plattformer ved bruk av flere programmeringsspråk. Det muliggjør robust, effektiv og skalerbar testautomatisering for moderne kvalitetssikringspraksis.

Hva er Selenium?
Selenium er et gratis (åpen kildekode) automatisert testrammeverk som brukes til å validere webapplikasjoner på tvers av forskjellige nettlesere og plattformer. Du kan bruke flere programmeringsspråk som Java, C#, Pythonosv for å lage Selenium Testskript. Testing utført ved hjelp av Selenium testverktøy kalles vanligvis Selenium Testing.
Ekspertinnsikt
«Unngå å bruke faste hviletidsforsinkelser i testene dine. Bruk heller eksplisitte ventetider (som WebDriverWait) for å vente på at elementer skal lastes inn. Dette gjør skriptene dine mer pålitelige og raskere, ettersom de reagerer dynamisk på faktiske sideforhold – en viktig beste praksis for studenter overalt, og starter med Selenium».
👉 Meld deg på gratis live Selenium Testprosjekt
Selenium Tool Suite
Selenium Programvare er ikke bare et enkelt verktøy, men en pakke med programvare, hver del passer til forskjellig Selenium QA-testingsbehovene til en organisasjon. Her er listen over verktøy
- Selenium Integrert utviklingsmiljø (IDE)
- Selenium Fjernkontroll (RC)
- webdriver
- Selenium Grid
For øyeblikket, Selenium RC og WebDriver slås sammen til ett enkelt rammeverk for å danne Selenium 2. Selenium 1, forresten, viser til Selenium RC.
Video Tutorial Selenium
Klikk her. hvis videoen ikke er tilgjengelig
Hvem utviklet Selenium?
Siden Selenium er en samling av forskjellige verktøy, den hadde også forskjellige utviklere. Nedenfor er nøkkelpersonene som ga bemerkelsesverdige bidrag til Selenium Prosjekt
Primært, Selenium var opprettet av Jason Huggins i 2004Som ingeniør hos ThoughtWorks jobbet han med en webapplikasjon som krevde hyppig testing. Etter å ha innsett at applikasjonens repeterende manuelle testing ble stadig mer ineffektiv, laget han en JavaScript program som automatisk ville kontrollere nettleserens handlinger. Han kalte dette programmet "JavaScriptTestRunner.
Han så potensialet i denne ideen for å hjelpe til med å automatisere andre nettapplikasjoner JavaScriptRunner åpen kildekode, som senere ble omdøpt Selenium Kjerne. For de som er interessert i å utforske andre alternativer for testing av nettapplikasjoner, ta en titt på disse Selenium alternativer.
Problemet med samme opprinnelsespolicy
Samme opprinnelsespolicy forbyr JavaSkriptkode fra tilgang til elementer fra et domene som er forskjellig fra der den ble lansert. For eksempel bruker HTML-koden i www.google.com en JavaSkriptprogrammet «randomScript.js». Den samme opprinnelsespolicyen vil bare tillate randomScript.js å få tilgang til sider på google.com, for eksempel google.com/mail, google.com/login eller google.com/signup. Den kan imidlertid ikke få tilgang til sider fra forskjellige nettsteder som yahoo.com/search eller guru99.com fordi de tilhører forskjellige domener.
Dette er grunnen til at, før Selenium RC, testere trengte for å installere lokale kopier av begge Selenium Kjerne (a JavaSkriptprogram) og webserveren som inneholder webapplikasjonen som testes, slik at de ville tilhøre samme domene
Fødsel av Selenium Fjernkontroll (Selenium RC)
Dessverre, testere som bruker Selenium Core måtte installere hele applikasjonen som ble testet og webserveren på sine egne lokale datamaskiner på grunn av restriksjonene som ble pålagt av policy med samme opprinnelseSå en annen ThoughtWorks-ingeniør, Paul Hammant, bestemte seg for å lage en server som skulle fungere som en HTTP-proxy for å «lure» nettleseren til å tro at Selenium Core og nettapplikasjonen som testes kommer fra samme domene. Dette systemet ble kjent som Selenium Fjernkontroll or Selenium 1.
Fødsel av Selenium Grid
Selenium Grid ble utviklet av Patrick Lightbody for å imøtekomme behovet for å minimere testutførelsestiden så mye som mulig. Han kalte systemet i utgangspunktet «Vertsbasert kvalitetssikring.» Den var i stand til å ta skjermbilder av nettlesere under viktige faser, og også av sender ut Selenium kommandoer til forskjellige maskiner samtidig.
Fødsel av Selenium IDE
Shinya Kasatani av Japan opprettet Selenium IDEen Firefox og Chrome-utvidelse som kan automatisere nettleseren gjennom en opptaks- og avspillingsfunksjon. Han kom opp med denne ideen for å øke hastigheten på å lage testtilfeller ytterligere. Han donerte Selenium IDE til Selenium Prosjekt i 2006.
Fødsel av WebDriver
Simon Stewart opprettet WebDriver ca 2006 da nettlesere og nettapplikasjoner ble kraftigere og mer restriktive med JavaSkriptprogrammer som Selenium Kjerne. Det var det første plattformuavhengige testrammeverket som kunne kontrollere nettleseren på OS-nivå.
Fødsel av Selenium 2
In 2008, Hele Selenium Teamet bestemte seg for å slå sammen WebDriver og Selenium RC for å danne et kraftigere verktøy kalt Selenium 2med WebDriver er kjernen. For tiden, Selenium RC er fortsatt under utvikling, men kun i vedlikeholdsmodus. Mesteparten av Selenium Prosjektets innsats er nå fokusert på Selenium 2.
Så hvorfor navnet Selenium?
Navnet Selenium kom fra en vits som Jason la en gang til laget sitt. I løpet av Seleniumsin utvikling, en annen automatisert testing rammeverket ble populært laget av selskapet som heter Mercury interaktiv (ja, selskapet som opprinnelig laget QTP før det ble kjøpt opp av HP). Siden Selenium er en velkjent motgift mot Mercury forgiftning, foreslo Jason at navnet og lagkameratene hans tok det. Så det var slik vi fikk kalle dette rammeverket frem til i dag.
Hva er Selenium IDE?
Selenium Integrert utviklingsmiljø (IDE) er enkleste rammeverket i Selenium suite og er den enkleste å lære. Det er en Chrome og Firefox plugg inn som du kan installere så enkelt du kan med andre plugins. Men på grunn av sin enkelhet, Selenium IDE skal bare brukes som en prototyping verktøy. Hvis du vil lage mer avanserte testcases, må du bruke enten Selenium RC eller WebDriver.
Hva er Selenium Fjernkontroll (Selenium RC)?
Selenium RC var rammeverk for flaggskiptesting av helheten Selenium prosjekt over lang tid. Dette er den første automatiserte nettesting verktøy som lar brukere bruke et programmeringsspråk de foretrekker. Fra og med versjon 2.25.0 kan RC støtte følgende programmeringsspråk:
Hva er WebDriver?
WebDriver viser seg å være bedre enn Selenium IDE og Selenium RC i mange aspekter. Den implementerer en mer moderne og stabil tilnærming for å automatisere nettleserens handlinger. WebDriver, i motsetning til Selenium RC, stoler ikke på JavaManus til Selenium Testing av automatisering. Den styrer nettleseren ved å kommunisere direkte med den.
De støttede språkene er de samme som de i Selenium RC.
- Java
- C#
- PHP
- Python
- Perl
- Rubin
Hva er Selenium Nett?
Selenium Grid er et verktøy brukes sammen med Selenium RC å kjøre parallelle tester på tvers av forskjellige maskiner og forskjellige nettlesere samtidig. Parallell utførelse betyr å kjøre flere tester samtidig.
Egenskaper:
- muliggjør samtidig gjennomføring av tester in flere nettlesere og miljøer.
- Sparer tid enormt.
- Bruker hub-og-noder konsept. Navet fungerer som en sentral kilde til Selenium kommandoer til hver node som er koblet til den.
Selenium Nettleser- og miljøstøtte
På grunn av deres arkitektoniske forskjeller, Selenium SDI, Selenium RC og WebDriver støtter forskjellige sett med nettlesere og driftsmiljøer.
| Selenium IDE | webdriver | |
|---|---|---|
| nettleser~~POS=TRUNC | Mozilla Firefox og Chrome | Google Chrome 12 + Firefox Internet Explorer 7+ og Edge Safari, HtmlUnit og PhantomUnit |
| Operating System | Windows, Mac OS X, Linux | Alle operativsystemer der nettleserne ovenfor kan kjøres. |
OBS: Opera Driveren fungerer ikke lenger
Hvordan velge riktig Selenium Verktøy for dine behov
| Tool | Hvorfor velge? |
|---|---|
| Selenium IDE |
|
| Selenium RC |
|
| webdriver |
|
| Selenium Grid |
|
Real-World Case Studies
🔍 Casestudie 1: Kompatibilitet på tvers av nettlesere for SaaS-dashbord
Scenario
Et programvare-som-en-tjeneste-selskap forberedte seg på å lansere et analysedashbord som måtte fungere konsistent på tvers av moderne nettlesere (Chrome, Firefox, Edge, Safari).
Utfordring
Manuell testing på hver nettleser var tidkrevende, feilutsatt og klarte ikke å holde tritt med raske utviklingsiterasjoner.
Løsning med Selenium
En kvalitetssikringsingeniør opprettet en Selenium Grid oppsett for å kjøre den samme testpakken samtidig på tvers av flere nettlesere og OS-kombinasjoner. Testene ble skrevet i Python ved hjelp av Selenium WebDriver for handlinger som pålogging, diagramfiltrering og dataeksport.
Utfallet
- Redusert regresjonsvarighet med 80 %.
- Oppdaget nettleserspesifikke gjengivelsesfeil tidlig (f.eks. feiljusterte grafer i IE).
- Opprettholdt en konsistent brukeropplevelse for dashbordet på tvers av nettlesermatrisen uten ekstra manuelle sykluser.
⚙️ Casestudie 2: CI/CD-integrasjon for webapp via Selenium + TestNG
Scenario
Et mellomstort webutviklingsfirma er avhengig av en CI/CD-pipeline med Jenkins. De måtte sørge for at kjernebrukerreisene fungerte etter hver kodeendring.
Utfordring
Nye implementeringer avviklet av og til brukerflyter – pålogging, skjemainnsending – og unngikk deteksjon frem til manuell testing på slutten av dagen.
Løsning med Selenium
En tester implementerte en Java-Basert Selenium WebDriver-pakke integrert med TestNGTestene dekket autentisering, profiloppdateringer og søkefunksjonalitet. Disse kjørte på alle Jenkins-bygg, og utnyttet parallell utførelse og nettleserparameterisering.
Utfallet
- Oppnådde feilsnarvei tilbakemelding: ødelagte flyter ble flagget umiddelbart.
- Reduserte feil etter utrulling med over 60 %.
- Gjorde det mulig for utviklere å løse problemer før de nådde QA-nivået.
🚀 Casestudie 3: Akselerering av funksjonslansering for reiseaggregator
Scenario
En reiseaggregatorplattform trengte å lansere en oppdatert funksjon for flybestilling. Manuelle regresjonstester på tvers av over 10 sider tok flere dager og blokkerte lanseringen.
Utfordring
Presset for å redusere tiden til markedet kunne ikke overgå manuelle testsykluser, noe som risikerte forsinkelser eller lavere kvalitet.
Løsning med Selenium & Sideobjektmodell
En QA-automatiseringsleder introduserte en POM-struktur (Page Object Model) i C#. Selenium WebDriver-skript innkapslet sideelementer og handlinger (søk etter flyvninger, bruk av filtre og betalingssaker). Automatiserte testkjøringer ble utløst hver natt på GitLab CI.
Utfallet
- Testtiden gikk ned fra 3 dager til bare 4 timer.
- Gjenbruk av skript på tvers av flere funksjoner reduserer skriptarbeidet med 50 %.
- Økt tillit: utgivelsen ble sendt etter planen med minimale feilrapporter.
Felles Selenium Utfordringer (og fikser)
Selv om Selenium er kraftig, møter testere ofte utfordringer som kan påvirke pålitelighet og hastighet. Her er noen vanlige utfordringer og hvordan du kan løse dem:
- Ustabile tester:
Tester kan mislykkes tilfeldig på grunn av timing eller nettverksproblemer.
Fastsette: Bruk eksplisitte ventetider og stabile lokatorer; unngåThread.sleep(). - Dynamiske webelementer:
Endring av element-ID-er eller XPath-er forårsaker feil av typen «element ikke funnet».
Fastsette: Bruk relative XPath-er, CSS-selektorer eller dynamisk attributthåndtering. - SyncProblemer med kronisering:
Elementer lastes inn saktere enn skriptkjøring.
Fastsette: Implementer WebDriverWait med forventede betingelser. - Uoverensstemmelser på tvers av nettlesere:
Tester oppfører seg annerledes i Chrome, Firefox, eller Edge.
Fastsette: Kjør tester på Selenium Rutenett- eller skyplattformer for validering på tvers av nettlesere. - Håndtering av popup-vinduer og varsler:
Uventede popup-vinduer kan avbryte testflyten.
Fastsette: Bruk Selenium's Alert-grensesnitt eller prøv å fange blokker for å håndtere dem på en elegant måte. - Vedlikeholdskostnader for testing:
Hyppige endringer i brukergrensesnittet gjør tester skjøre.
Fastsette: Ta i bruk Page Object Model (POM) og versjonskontroll for enkle oppdateringer. - Integrasjonsutfordringer:
CI/CD-pipelines kan mislykkes på grunn av driverproblemer.
Fastsette: Bruk Selenium Sjef (Selenium 4+) eller WebDriver Manager for å administrere drivere automatisk.
Kort sagt: bro Selenium Problemer stammer fra dårlig synkronisering eller sprø lokatorer – begge deler kan løses gjennom smartere ventetider, modulær design og kontinuerlig vedlikehold.




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



