**Selenium** on tarkvara testimisraamistik veebirakenduste testimiseks. Seleniumi integreeritud arenduskeskkond (IDE) võimaldab kasutada taasesitamise vahendit, et ei oleks vaja ära õppida testide skriptikeelt. 

Selenium võimaldab kasutada ka domeenispetsiifilist keelt Selenese testide loomiseks programmeerimiskeelte abil, näiteks C#, Groovy, Java, Perl, PHP, Python, Ruby ja Scala. Teste on võimalik kasutada enamikus uuemates veebibrauserites ning Seleniumi tarkvara on ühilduv nii Windowsi, Linuxi kui ka macOS-i platvormidega. Selenium on väljastatud Apache 2.0 litsentsi all, lähtekood on avatud ning tarkvara on tasuta allalaadimiseks ja kasutamiseks.

Komponendid
-----------

Selenium koosneb komponentidest, millest igaühel on oma kindel roll veebirakenduste testimise automatiseerimises.

### Selenium IDE

Selenium IDE on täielik integreeritud arenduskeskkond Seleniumi testide jaoks. IDE on teostatud Firefoxi pistikprogrammina ja võimaldab teste salvestada, muuta ja siluda. Varem tuntud kui Selenium Recorder. Selenium IDE funktsionaalsuse implementeeris algselt Shinya Kastani ja aastal 2006 annetas ta selle Seleniumi projektile. Seda pistikprogrammi enam ei hooldata ning see ühildus Selenium RC-ga, mis on nüüdseks vananenud. Skripte saab automaatselt salvestada ja manuaalselt muuta, tarkvara toetab automaatset täitmist ja kiiret liikumist erinevate käskude vahel. Skriptid on kirjutatud Selenese keeles, mis on spetsiaalne skriptimiskeel Seleniumi jaoks. Selenese võimaldab veebibrauseris erinevate käskude sooritamist (nt lingile klikkimine, valiku tegemine) ja lehtedelt informatsiooni leidmist. Firefoxi Selenium IDE lakkas töötamast pärast Firefoxi 55 uuendust ja enam seda toetata.

### Selenium Client API

Peale Selenese saab teste kirjutada ka muudes programmeerimiskeeltes. Testid edastavad infot sel juhul Seleniumile, kutsudes välja meetodeid Seleniumi kliendi rakendusliideses. Selenium pakub rakendusliidest Java, C#, Ruby, Javascripti ja Pythoni jaoks. Selenium 2-ga tutvustati uut kliendi rakendusliidest, kus põhikomponent on Webdriver. Vana Seleniumi klassi kasutav rakendusliides on aga siiamaani toetatud.

### Selenium Webdriver

Selenium Webdriver on Selenium RC järeltulija. Webdriver võtab vastu käsud Selenese keeles või kliendi rakendusliidese (API) kaudu ja saadab need veebibrauserile edasi. See on implementeeritud veebibrauserispetsiifilise draiveri kaudu, mis saadab käske edasi veebibrauserile ja otsib informatsiooni. Enamik veebibrauseri draivereid käivitab ja külastab veebibrauserirakendusi (nt Firefox, Chrome, Internet Explorer, Michrosoft Edge, HtmlUnit). Selenium 1 kasutades oli testide käitamiseks vajalik Seleniumi server. Selenium Webdriver aga ei vaja testide käivitamiseks eraldiseisvat serverit. Webdriver käivitab otse veebibrauseri ja võtab selle üle kontrolli. Webdriveriga teste kaughaldussüsteemides käitades võib lisaks kasutada Selenium Gridi (vt allpool). Kui võimalik, kasutab Webdriver operatsioonisüsteemi enda funktsionaalsust, mitte veebibrauseripõhiseid JavaScripti käske.

### Selenium Remote Control

Selenium Remote Control (RC) on server veebibrauseri poolt tulevate käskude vastuvõtmiseks HTTP kaudu. RC teeb võimalikuks veebirakendustele automatiseeritud testide kirjutamise igas programmeerimiskeeles, mis võimaldab Seleniumi paremat integratsiooni olemasolevatesse ühiktestimise raamistikesse. Testide kirjutamise lihtsustamiseks pakub Selenium kliendidraivereid PHP-le, Pythonile, Rubyle, .Net’ile, Perlile ja Javale. Selenium 2 väljatulemisega loetakse Selenium RC ametlikult vananenuks, nüüdsest eelistatakse Selenium Webdriverit.

### Selenium Grid

Selenium Grid on server, mis laseb testidel kasutada veebibaruserit, mis jookseb kaughaldusserveris.

Viited
------

1. 1 2  Stewart, Simon. "The Architecture of Open Source Applications: Selenium WebDriver". *www.aosabook.org*. Vaadatud 16.03.2018.
2. 1 2  Alex McPeak (2.03.2017). "An Introduction to Selenium Open Source Automation Tool". Vaadatud 15.04.2018.
3. ↑  Evans, Jim (14.1.2016). "Selenium Users - Selenium IDE seems dated and lacks features". *groups.google.com*. Vaadatud 16.03.2018.
4. ↑  "Firefox 55 and Selenium IDE". *Official Selenium Blog*. 9.08.2017. Vaadatud 16.03.2018.
5. ↑  "Selenium WebDriver". Vaadatud 15.04.2018.
6. ↑  "Selenium grid for RC and WebDriver". Vaadatud 15.04.2018.

Välislingid
-----------

* Ametlik koduleht