Selenium komek pirtûkxaneyan e ku tê bikar anîn ku têkiliyên bikarhênerek bi gerokê re dişibîne.
Bikarhêner bi karanîna pirtûkxaneyên seleniyûmê senaryoyan dinivîsin da ku danûstendinên gerokên bikarhênerê yên hevbeş bikin, mînakî ku biçin rûpelek, bişkokek bikirtînin û formek dagirin.
Seleniyûm bi gelemperî di projeyên ku sepanên pêş-end (UI) tevneyê ava dikin de tê bikar anîn. Ew ji bo otomatîkkirina senaryoyên ku têkiliya bikarhênerek bi sepana tevnê re dişibînin tê bikar anîn.
Ji bo ku Selenium WebDriver di projeyek de bikar bînin, yekem e ku em Selenium Core û WebDriver Binaries saz bikin.
Em her weha neçar in ku rê ji bo her ajokarê bicîhker saz bikin.
Heke hûn dixwazin Seleniyûmê bi Java re bikar bînin, wê hingê awayê herî hêsan a sazkirina Selenyûmê bi projeya xwe ve girêdayîbûna Maven e pom.xml
dosî:
org.seleniumhq.selenium
selenium-java
3.141.59
Ji bo ku ceribandinên Seleniumê li ser Google Chrome an Firefox-ê gerokê, hûn hewce ne ku pêbendiya têkildar li pom.xml
dosî:
org.seleniumhq.selenium
selenium-chrome-driver
3.141.59
org.seleniumhq.selenium
selenium-firefox-driver
3.141.59
Ji bo ku ceribandinên Selenium-ê li ser rûgerek taybetî bicîh bikin, hûn hewce ne ku binaryoyên têkildar ên gerokê-têkildar WebDriver saz bikin û rêça rast rast bikin.
Chrome Ji bo sazkirina rêça kromiumê ya li ser pergalê MacOS-ê, hûn dikarin bikar bînin:
$ export PATH='$PATH:/path/to/chromedriver'
Her weha hûn dikarin rê bi bernameyî, rasterast di kodê de saz bikin:
System.setProperty('webdriver.chrome.driver', '/path/to/chromedriver');
Firefox - Geckodriver:
System.setProperty('webdriver.gecko.driver', '/path/to/geckodriver');
Qerax:
System.setProperty('webdriver.edge.driver', 'C:/path/to/MicrosoftWebDriver.exe');
Internet Explorer:
System.setProperty('webdriver.ie.driver', 'C:/path/to/IEDriver.exe');
Piştî sazkirina Selenium, paşê ew e ku ajokarek gerokê taybetî yekser bike da ku testên UI bimeşîne.
Testên seleniyûmê li dijî navgîniya bikarhênerê ya serîlêdanê têne rêve kirin û pêdivî ye ku gerokek ku pê re kar bike. Em dikarin diyar bikin ka li hember kîjan rûgera em dixwazin ceribandinên xwe bimeşînin û paşê ajokarê guncan yekser bikin.
Not:Testên seleniyûmê tenê ji bo têne bikar anîn Otomasyona UI û ceribandinên li dijî rûgerek.import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; WebDriver driver = new ChromeDriver();
import org.openqa.selenium.WebDriver; import org.openqa.selenium.Firefox.FirefoxDriver; WebDriver driver = new FirefoxDriver();
import org.openqa.selenium.WebDriver; import org.openqa.selenium.edge.EdgeDriver; WebDriver driver = new EdgeDriver();
import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; WebDriver driver = new InternetExplorerDriver();
Gava ku me rûniştinek WebDriver-a çalak heye û gerokek dest pê kir, tiştê din ê ku em dixwazin bikin ev e ku em rûpelek bigerin û testan bimeşînin.
Selenium WebDriver gelek awayên kêrhatî peyda dike ku bi gerokê re têkilî dayne. Em dikarin navîgasyonê bikin û der barê rûpelê heyî de agahdarî bistînin.
Ji bo ku em biçin nav URL du vebijarkên me hene:
//The short form driver.get('https://devqa.io'); //The long form driver.navigate().to('https://devqa.io');
Seleniyûm back()
rêbaza tikandina bişkoja paşiya gerokê dişibîne:
driver.navigate().back();
Seleniyûm forward()
rêbaza tikandina bişkoja pêşê gerokê dişibîne:
driver.navigate().forward();
Seleniyûm refresh()
rêbaza tikandina bişkoja nûvekirina gerokê dişibîne:
driver.navigate().refresh();
Selenium her weha rêbazan peyda dike ku url-ya heyî, sernavê rûpelê û çavkaniya rûpelê bigire.
Em dikarin URL-a rûpela heyî bistînin:
driver.getCurrentUrl();
Em dikarin sernavê rûpelê heyî bistînin:
driver.getTitle();
Em dikarin çavkaniya rûpela heyî bistînin:
driver.getPageSource();
Ji bo girtina pencereya geroka heyî:
driver.close();
Not:Girtina paceya gerokê Nake rûniştina WebDriver bidawî bike.Ji bo ku hûn di dawiya karanîna ceribandinê de ji rûniştina WebDriver derkevin:
driver.quit();
Rêbaza terikandinê dê:
Berî ku em karibin bi hêmanek tevnê re têkiliyê deynin, pêdivî ye ku em ê elementê li ser rûpelê html bicîh bikin.
Yek ji girîngtirîn behreyên mihendisê otomasyona testê ku bi Selenium WebDriver re dixebite ew e ku meriv bikaribe metodên guncan bikar bîne da ku hêmanan li ser rûpelek bi cih bike.
Mînakî, heke em dixwazin zencîreyek bikirtînin, rast bikin ku peyamek tê xuyang kirin an tikandinek bikirtînin, pêdivî ye ku em yekem hêmanê bi cih bikin.
Selenium WebDriver rêbazên cûda peyda dike da ku hêmanan li ser rûpelek bi cih bike.
Lokator tiştê ku hûn dixwazin li ser rûpelek bibînin vedibêje. Li Java, em bi karanîna By
sinif.
Mînakî, heke me xwest em h1
| bibînin sernavê hêmanek li ser rûpelek, em ê binivîsin
WebElement h1Element = driver.findElement(By.tagName('h1'));
An jî, heke me xwest em hemî hêmanên paragrafê li ser rûpelek bibînin, em ê bikar bînin
List pElements = driver.findElements(By.tagName('p'));
Ev rêbaza hanê ji hêla nivîsa rastîn ve ya ku ew nîşan dide cih digire. Ev rêbaz di normalê de ji bo girêdanên li ser rûpelek locatorê bijarte ye.
Mînakî, bihesibînin ku ev girêdana me li ser rûpelek heye:
Forgotten Password
Hingê, zencîre dikare bi karanînê were bicîh kirin:
driver.findElement(By.linkText('Forgotten Password'));
Dema ku em ji vegotina rastîn a têksta girêdanê ne ewle ne lê dixwazin girêdanek an girêdanên ku bibînin tê de heye nivîsek diyarkirî, em dikarin bikar bînin
driver.findElement(By.partialLinkText('Forgotten '));
an
driver.findElement(By.partialLinkText('Password'));
Gava hûn findElement
bikar tînin divê hûn hay jê hebin bi vî locator re wekî ku dibe ku hêmanên din hene ku heman nivîsa qismî tê de hene, ji ber vê yekê divê ev neyê bikar anîn ku ji xwe re hêmanek tenê bi cih bike. Çêtirîn e ku meriv wê bikar bîne da ku komek hêmanan bi rêbaza findElements
bi kar bîne.
Ev hêmanan ji hêla nirxa taybetmendiya çînê ve bi cî dike. Ev dikare tenê ji bo wan hêmanên ku taybetmendiyek çîna wan heye were bikar anîn, lê ew hilbijêrekî ne baş e ku bi findElement
bikar bîne. awa.
Bikaranîna heman mînaka li jor bi zencîreyê re, girêdana 'Passwordîfreya Jibîrkirî' re çîna CSS-ê heye: btn
ku dikare ji bo cîhgirtina wê were bikar anîn
Forgotten Password
Wê hingê, zencîre dikare bi karanînê were bicîh kirin:
driver.findElement(By.className('btn'));
Not:Taybetmendiya polê ji bo rûpelên şêwazê tê bikar anîn, û ji ber vê yekê derfet hene ku gelek hêman dibe ku xwedan heman çîn bin.Bi id, hêmanan ji hêla nirxa taybetmendiya wan a id ve cih dike. Zencîreya di mînaka jorîn de nasnameyek heye ku em dikarin bikar bînin:
Forgotten Password
Wê hingê, zencîre dikare bi karanînê were bicîh kirin:
driver.findElement(By.id('change-password'));
Ger taybetmendiya id-ê hebe, wê hingê divê ew wekî yekem bijarteya bijarte were bikar anîn.
Ji hêla nirxa taybetmendiya navê wan ve hêmanan cîwar dike. Bi gelemperî ew tenê dikare were bikar anîn ku hêmanên formê ku bi karanînê hatine çêkirin hatine cih kirin: ,
,
, û
.
Li ser rûpela têketinê ya tîpîk, qadên we yên têkevinê hene ku dibe ku mîna:
Dûv re em dikarin bi taybetmendiya navê navnîşê qada e-nameyê bicîh bikin
driver.findElement(By.name('email'));
Ev locator bi navê xweya HTML-ê hêmanan dibîne. Ji ber ku bi gelemperî gelek karanînên dubare yên pir nîşeyan hene, ne baş e ku meriv vê rêbazê bikar bîne da ku hêmanek tenê bi cih bike.
Bikaranînek gelemperî ya peydakirina hêmanek bi navnîşa tagê ji bo cîhkirina sernavê rûpelê ye, ji ber ku vana tenê yek heye:
Welcome to DevQA!
Paşê em dikarin qada sernavê bi navnîşa tagê bicîh bikin:
driver.findElement(By.tagName('h1'));
Bi navgîniya motora bingehîn a ajokerê W3 CSS Hilbijêrê hêmanan cîwar dike. CSS hilbijêr lokator bi hêz e ku ew dikare were bikar anîn ku her hêmanek li ser rûpelek bi cih bike.
Forgotten Password
Dûv re em dikarin bi taybetmendiya navê navnîşê qada e-nameyê bicîh bikin
driver.findElement(By.cssSelector('#change-password'));
Li vir, #
id ya hêmanê temsîl dike. | .
notkirin taybetmendiya çîna elementek temsîl dike.
Bo nimûne:
driver.findElement(By.cssSelector('.btn'));
Girêdayî:
Xebatkerên XPath hilbijarka herî tevlihev in ku bikar tînin. Ew hewceyê zanîna bi zimanê XPath query-ê ye, ji ber vê yekê heke hûn bi wî zimanî pirsiyarî nizanin, hûn ê dijwar bibînin ku hêmanan pirsên XPath bikar tînin.
Ka em ji bo vê HTML-ê li karanîna XPath-a mînak binêrin:
Change Password
Dûv re em dikarin bi taybetmendiya navê navnîşê qada e-nameyê bicîh bikin
driver.findElement(By.xpath('//a[@id='change-password']'));
Gava ku me hêmanek li ser rûpelê bicîh kir, em dikarin bi karanîna cûrbecûr rêbazên ku seleniyûm peyda dike pê re têkiliyê deynin.
Selenium WebDriver gelek awayan peyda dike ku bi hêmanên tevnê re têkildar bibin mîna tikandina bişkojên radestkirinê û têkevin nivîsarê di qadên têkevinê de.
WebElement
polê gelek rêbaz hene ku em dikarin wan bi kar bînin da ku bi hêmanên rûpelê re têkiliyê deynin. Yên herî hevpar ev in:
click()
clear()
sendKeys()
submit()
click()
rêbaz tête bikar anîn ku ji bo hêmanek tevnê wekî girêdan an bişkokek bitikîne.
Mînak:
Menu
WebElement mToggle = driver.findElement(By.id('menu-toggle')); mToggle.click();
clear()
rêbaza nirxê qada navnîşê paqij dike.
Mînak:
WebElement username = driver.findElement(By.id('username')); username.clear();
Em sendKeys()
bikar tînin rêbaza ku tîpan têkevin qutiyek qada navnîşê.
Mînak:
WebElement username = driver.findElement(By.id('username')); username.sendKeys('jondoe');
Li jêr mînakek heye ka meriv çawa Selenium bikar tîne da ku formek dagire
username:
Last name:
WebElement username = driver.findElement(By.id('username'));
username.sendKeys('jondoe');
WebElement password = driver.findElement(By.id('password'));
password.sendKeys('secret');
WebElement submit = driver.findElement(By.cssSelector('input[type='submit']'));
submit.click();
Naha ku me bingehên Selenium WebDriver nixamt, ew dem e ku meriv çarçoveyek ava bike.
Fêr bibe ka meriv çawa ji nû ve çarçoveyek selenyûmê ava dike.
Beşa yekem a tutorial-ê gav-bi-gav li ser karanîna karanîna Java, Maven û TestNG-ê seleniyûmê WebDriver-ê pêşkêş dike.
Beşa duyemîn li ser damezrandina ceribandinên seleniyûmê li ser bingeha Modelê Navdarê Rûpelê disekine.