Selen

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 25. maj 2021; checks kræver 6 redigeringer .
selen
Type software test
Skrevet i Java
Operativ system Microsoft Windows , GNU / Linux , Apple MacOS
nyeste version 4.5.0 (28. september 2022 ) ( 2022-09-28 )
Licens Apache-licens 2.0
Internet side selen.dev

Selenium WebDriver  er et værktøj til automatisering af webbrowserhandlinger. I de fleste tilfælde bruges det til at teste webapplikationer , men er ikke begrænset til dette. Det kan især bruges til at løse rutinemæssige siteadministrationsopgaver eller regelmæssigt modtage data fra forskellige kilder (sites). Sjældent brugt, men vigtig.

Historie

I juni 2004 [1] skrev udvikleren Jason Huggins et JavaScript- bibliotek kaldet "JavaScriptTestRunner" (nu kendt som "Selenium Core") for at køre test i browseren . På det tidspunkt arbejdede Huggins på ThoughtWorks- kontoret i Chicago , og det oprettede bibliotek blev brugt til at teste et websted skrevet i Python ved hjælp af indholdsstyringssystemet (CMS) Plone . Huggins blev assisteret af Paul Gross og Jie Tina Wang fra ThoughtWorks. Senere sluttede andre udviklere og testere af virksomheden sig til udviklingen.

Navnet "Selenium" ("selen" på engelsk - selenium ) begyndte at blive brugt, efter Huggins jokede i en af ​​sine e-mails (e-mail) om et konkurrerende projekt kaldet "Mercury Interactive QuickTest Professional" ("mercury" på oversat fra engelsk - kviksølv ), skriver at du kan komme dig fra kviksølvforgiftning ved at tage selen sammen med mad [2] .

Paul Hammant (en medarbejder i ThoughtWorks) foreslog at åbne kildekoden til Selenium Core-biblioteket, give mulighed for at skrive scripts i et hvilket som helst programmeringssprog og køre scripts eksternt. For at implementere sidstnævnte var det nødvendigt at omgå de begrænsninger, som browseren implementerede for at overholde den samme oprindelsespolitik . Aslak Hellesoy og Mike Melia fra ThoughtWorks skrev en sideforfatter for at omgå reglen. Paul Hammant skrev Java -programmerne , der implementerer serveren og klienten. Aslak Hellesoy og Obie Fernandez omskrev Ruby -klienten som et bibliotek.

ThoughtWorks, som har kontorer rundt om i verden, begyndte at bruge Selen i kommercielle projekter. Udviklingen fortsatte af Mike Williams, Darrell Deboer og Darren Cotterill.

Udviklere fra BEA Systems, Inc., Dan Fabulich og Nelson Sproul omskrev serverkoden ved at bruge kode fra Jetty -projektet (HTTP-server i Java) til at implementere HTTP -proxyen. Den nye server blev kendt som "Selenium Remote Control" eller "Selenium RC". Selenium RC blev videreført af Pat Lightbody, Dan Fabulich og Nelson Sproul.

I december 2004 blev kildekoden til Selenium-projektet åbnet.

I 2005, på et udviklermøde, foreslog Dan Fabulich og Nelson Sproul (med hjælp fra Pat Lightbody) at vedtage et sæt patches, der ville gøre "Selenium RC" til det produkt, der i dag er kendt som "Selenium 1.0". På samme møde blev projektledelsen tildelt et udvalg, hvor udviklerne Jason Huggins og Paul Hammant repræsenterede ThoughtWorks i det udvalg, der blev dannet.

I sommeren 2006 blev Selenium Core-biblioteket udviklet af et udviklingsteam af Wang Peng Chao, Huang Liang, Xiong Jie og andre, ledet af Mike Williams på ThoughWorks-kontoret i Kina. Teamet har implementeret de funktioner, der er tilgængelige i Selenium 1.0.

I 2007 sluttede Jason Huggins sig til Google, blev medlem af det (dengang hemmelige) Selenium-supportteam og fortsatte med at arbejde på Selenium RC med andre udviklere (såsom Jennifer Bevan). Google-repræsentanter annoncerede første gang brugen af ​​selen på Google Test Automation Conference (GTAC-2007) [3] afholdt i New York den 23.-24. august 2007. Senere fik Jennifer Bevan muligheden for at foretage ændringer i Selenium-projektets kode.

Haw-bin Chai fra Chicago skabte patches, der tilføjede XPath -funktionalitet og implementerede en udvidelse kaldet "UI Element", hvorefter han blev inviteret til Selenium-udviklingsteamet i 2007.

Simon Stewart, dengang hos ThoughtWorks, udviklede et værktøj kaldet WebDriver. WebDriver lancerede browsere og arbejdede med dem, mens det ikke var begrænset af funktionerne fra JavaScript, derfor var det bedre i egenskaber i forhold til Selenium Core. Men at understøtte hver browser krævede at skrive kode. I 2007 præsenterede Simon Stewart sin udvikling på GTAC-2007-konferencen. I 2009 mødtes udviklerne på GTAC-2009-konferencen og besluttede at fusionere kodebaserne for Selenium- og WebDriver-projekterne. Fra 2007-2012 arbejdede Simon Stewart hos Google og senere hos Facebook, hvor han brugte en del af sin tid på at gøre WebDriver kompatibel med Selenium RC. Det nye produkt fik navnet "Selenium WebDriver" eller "Selenium 2.0" [4] .

I 2008 skabte Philippe Hanrigou, dengang hos ThoughtWorks, Selenium Grid-projektet. Selenium Grid er et open source-projekt, der leverer programmer designet til at køre Selenium RC-scripts på flere computere på samme tid. Forskellige scripts blev kørt på flere computere for at reducere deres udførelsestid. Mulighederne for "Selenium Grid" faldt sammen med mulighederne for et lignende, men lukket og internt produkt fra Google. Pat Lightbody ejede et websted kaldet "Hosted QA", der giver dig mulighed for at få skærmbilleder af websider , solgte webstedet til Gomez, Inc.

Shinya Kasatani fra Japan har lavet en udvidelse til Firefox -browseren kaldet "Selenium IDE", der giver dig mulighed for at optage, gemme og afspille tests. Udvidelsen var ikke begrænset af den samme oprindelsespolitik .

Generel information

Selenium WebDriver er primært et sæt biblioteker til forskellige programmeringssprog. Disse biblioteker bruges til at sende HTTP -anmodninger til driveren (deraf navnet WebDriver), ved hjælp af JsonWireProtocol [5] -protokollen , som angiver den handling, som browseren skal udføre i den aktuelle session. Eksempler på sådanne kommandoer kan være kommandoer til at finde elementer ved hjælp af en locator, følge links, parse teksten på en side/et element, trykke på knapper eller følge links på en hjemmesideside . Der er både officielle bindinger af biblioteket til populære programmeringssprog og amatørsprog. For eksempel er PHP sprogunderstøttelsesbiblioteket ikke officielt og udvikles af Facebook [6] .

Selenium-projektet og fællesskabet understøtter Microsoft Internet Explorer , Google Chrome , Mozilla Suite og Mozilla Firefox browsere , der kører Microsoft Windows , Linux og Apple Macintosh operativsystemer .

Selen begyndte fra version 3.x at kræve en separat driver for at fungere med Firefox-browseren - GeckoDriver , tidligere kaldet Marionette [7]

Som en del af Selenium-projektet frigives Selenium IDE -værktøjet - en udvidelse til Firefox og Chrome -browsere , som er et Selenium-bibliotek med en grafisk grænseflade (GUI) bygget ved hjælp af XUL . Udvidelsen giver dig mulighed for at optage, gemme og afspille scripts til test af websider. Scripts gemmes i HTML -format som en tabel.

Understøttede platforme

Liste over browsere , der understøttes af Selenium-projektudviklerne og/eller fællesskabet [8] :

Browser Operativ system Udvikler
Chromium / Google Chrome Windows / macOS / Linux Google
Firefox Windows/macOS/Linux Mozilla
Microsoft Edge Windows 10 Microsoft
Internet Explorer Windows Selen projekt
safari macOS El Capitan og nyere Æble
Opera Windows/macOS/Linux Opera

Det er også muligt at bruge med browsere uden en grafisk grænseflade  - HtmlUnit og PhantomJS , selvom sidstnævnte ikke anbefales, da dette produkt ikke er blevet opdateret og understøttet af dets udvikler siden 2017 og den tilsvarende funktionalitet har været til stede i browseren siden dengang Google Chrome [8] .

Se også

Noter

  1. Selens historie  . selen.dev. Hentet 19. december 2019. Arkiveret fra originalen 19. december 2019.
  2. Crill, Paul. Open source Selenium webapp-testpakke til understøttelse af iPhone og Android  // InfoWorld  :  magazine. - 2011. - 6. april.
  3. Anden årlige Google Test Automation Conference (7. marts 2007). Hentet 1. september 2016. Arkiveret fra originalen 13. maj 2016.
  4. Selenprojektet . Ny Cirkel. Hentet 29. juni 2014. Arkiveret fra originalen 12. august 2014.
  5. selenium: A browser automation framework and ecosystem , 2017-12-31 , < https://github.com/SeleniumHQ/selenium > Arkiveret 19. februar 2020 på Wayback Machine 
  6. php-webdriver: En php-klient til webdriver . — 2017-06-17. Arkiveret fra originalen den 17. maj 2017.
  7. Marionette  . _ Mozilla Developer Network. Hentet 19. juni 2017. Arkiveret fra originalen 12. september 2017.
  8. 1 2 Selenium Browser Automation Project - Driverkrav  . Hentet 8. februar 2021. Arkiveret fra originalen 4. marts 2021.

Links