Selenium námskeið - Lærðu vafra sjálfvirkni með Selenium WebDriver

Selen er safn bókasafna sem er notað til að líkja eftir samskiptum notanda við vafra.

Notendur skrifa forskriftir með selenbókasöfnum til að líkja eftir algengum samskiptum vafra notenda, svo sem að fara á síðu, smella á hnapp og fylla út eyðublað.

Selen er almennt notað í verkefnum sem byggja upp vefforrit (UI). Það er notað til að gera sjálfvirkar sviðsmyndir sem líkja eftir samskiptum notanda við vefforritið.

Settu upp Selenium

Til að nota Selenium WebDriver í verkefni verðum við fyrst að setja upp Selenium Core og WebDriver Binaries.

Við verðum einnig að setja leið fyrir hvern ökumann sem hægt er að keyra.

Ef þú vilt nota Selen með Java, þá er auðveldasta leiðin til að setja upp Selen með Maven ósjálfstæði í verkefninu þínu pom.xml skrá:




org.seleniumhq.selenium
selenium-java
3.141.59

Til að keyra Selenium prófanir í Google Chrome eða Firefox vafra þarftu að bæta viðeigandi ósjálfstæði í pom.xml skrá:

Google Chrome vafri


org.seleniumhq.selenium
selenium-chrome-driver
3.141.59

Firefox vafri


org.seleniumhq.selenium
selenium-firefox-driver
3.141.59

Settu upp WebDriver Binaries og settu leiðina

Til að framkvæma Selen-próf ​​í tilteknum vafra þarftu að setja upp viðeigandi vafra-sértæktar WebDriver tvöfaldur og setja réttan slóð.

Króm Til að stilla leiðina að króm keyranlegu í MacOS kerfi er hægt að nota:

$ export PATH='$PATH:/path/to/chromedriver'

Þú getur einnig stillt slóðina forritanlega, beint í kóðann:

System.setProperty('webdriver.chrome.driver', '/path/to/chromedriver');

Firefox - Geckodriver:

System.setProperty('webdriver.gecko.driver', '/path/to/geckodriver');

Brún:

System.setProperty('webdriver.edge.driver', 'C:/path/to/MicrosoftWebDriver.exe');

Internet Explorer:

System.setProperty('webdriver.ie.driver', 'C:/path/to/IEDriver.exe');

Instantiate vafra bílstjóri

Eftir að Selen hefur verið sett upp er næst að koma á ákveðnum vafraþjóni til að keyra prófanir HÍ.

Selen próf eru keyrð gegn notendaviðmóti forrits og þurfa vafra til að vinna með. Við getum tilgreint við hvaða vafra við viljum keyra prófin okkar og síðan komið af stað viðeigandi rekli.

Athugið:Selen próf eru aðeins notuð við Sjálfvirkni HÍ og prófanirnar keyra gegn vafra.

Króm

import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; WebDriver driver = new ChromeDriver();

Firefox

import org.openqa.selenium.WebDriver; import org.openqa.selenium.Firefox.FirefoxDriver; WebDriver driver = new FirefoxDriver();

Edge

import org.openqa.selenium.WebDriver; import org.openqa.selenium.edge.EdgeDriver; WebDriver driver = new EdgeDriver();

Internet Explorer

import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; WebDriver driver = new InternetExplorerDriver();

Browser Navigation

Þegar við erum með virka WebDriver fundi og höfum opnað vafra er það næsta sem við viljum gera er að fara á síðu og keyra próf.

Selen WebDriver býður upp á fjölda gagnlegra aðferða til að hafa samskipti við vafrann. Við getum framkvæmt leiðsögn og fengið upplýsingar um núverandi síðu.

Til að fletta að vefslóð höfum við tvo möguleika:

//The short form driver.get('https://devqa.io'); //The long form driver.navigate().to('https://devqa.io');

Fara aftur

Selen back() aðferð hermir eftir því að smella á afturhnapp vafrans:

driver.navigate().back();

Fara áfram

Selen forward() aðferð hermir eftir því að smella á áframhnapp vafrans:

driver.navigate().forward();

Hressandi síðuna

Selen refresh() aðferð hermir eftir því að smella á hressingarhnapp vafrans:

driver.navigate().refresh();

Að fá upplýsingar um núverandi síðu

Selen veitir einnig aðferðir til að fá núverandi vefslóð, titil síðu og uppruna síðunnar.

Fáðu núverandi vefslóð

Við getum fengið slóð núverandi síðu:

driver.getCurrentUrl();

Fáðu síðuheiti

Við getum fengið titil núverandi síðu:

driver.getTitle();

Fáðu síðuheimild

Við getum fengið heimild þessa síðu:

driver.getPageSource();

Loka og hætta í vafraþinginu

Til að loka núverandi vafraglugga:

driver.close(); Athugið:Loka vafraglugganum gerir ekki ljúka WebDriver fundinum.

Til að hætta í WebDriver fundinum í lok prófanotkunarinnar:

driver.quit();

Hætta aðferðin mun:

  • Lokaðu öllum gluggum sem tengjast WebDriver fundinum
  • Drepðu vafraferlið
  • Drepðu bílstjóraferlið

Selenium staðsetningarmenn - Hvernig á að finna vefþætti

Áður en við getum haft samskipti við vefþátt verðum við að finna frumefnið á html síðunni.

Ein mikilvægasta hæfni prófsjálfvirkjafræðings sem vinnur með Selenium WebDriver er að geta notað viðeigandi aðferðir til að finna þætti á síðu.

Til dæmis, ef við viljum smella á hlekk, staðfesta að skilaboð birtist eða smella á hnapp, verðum við fyrst að finna þáttinn.

Selen WebDriver býður upp á mismunandi aðferðir til að finna þætti á síðu.

Locator lýsir því sem þú vilt finna á síðu. Í Java búum við til staðsetningaraðila með því að nota By bekk.

Til dæmis, ef við vildum finna h1 fyrirsögn á síðu, myndum við skrifa

WebElement h1Element = driver.findElement(By.tagName('h1'));

Eða ef við vildum finna alla málsgreinar á síðu, myndum við nota það

List pElements = driver.findElements(By.tagName('p'));

Eftir krækjutexta

Þessi aðferð staðsetur þætti eftir nákvæmum texta sem hann birtir. Þessi aðferð er venjulega valinn staðsetningarmaður fyrir krækjur á síðu.

Segjum til dæmis að við séum með þennan hlekk á síðu:

Forgotten Password

Síðan er hægt að finna krækjuna með því að nota:

driver.findElement(By.linkText('Forgotten Password'));

Með krækjutexta að hluta

Þegar við erum ekki viss um nákvæmlega orðalag krækjutextans en viljum finna krækju eða tengla það inniheldur tiltekinn texta getum við notað

driver.findElement(By.partialLinkText('Forgotten '));

eða

driver.findElement(By.partialLinkText('Password'));

Þú ættir að vera varkár þegar þú notar findElement með þessum staðsetningartæki þar sem það gætu verið aðrir þættir sem innihalda sama hlutatexta, svo þetta ætti ekki að nota til að finna einn einasta þátt. Best er að nota það til að finna hóp af þáttum með aðferðinni findElements.

Eftir flokkareiginleika

Þetta staðsetur þætti eftir gildi flokkseigindarinnar. Þetta er aðeins hægt að nota fyrir þá þætti sem hafa einkennisstig flokks, en það er ekki góður valtari til að nota með findElement aðferð.

Með því að nota sama dæmið hér að ofan með krækjunni, þá hefur „Gleymt lykilorð“ tengilinn einn CSS flokk: btn sem hægt er að nota til að staðsetja það

Forgotten Password

Síðan er hægt að finna krækjuna með því að nota:

driver.findElement(By.className('btn')); Athugið:Bekkiseiginleikinn er notaður til að stílsíða og því líkur á að margir þættir séu líklega með sama bekk.

Eftir id

Eftir id, finnur þætti eftir gildi auðkennis eiginleika þeirra. Krækjan í dæminu hér að ofan er með auðkenni sem við getum notað:

Forgotten Password

Síðan er hægt að finna krækjuna með því að nota:

driver.findElement(By.id('change-password'));

Ef persónueiginleikinn er fáanlegur ætti að nota það sem fyrsta valið.

Með nafni

Finnur þætti eftir gildi eigindar þeirra. Venjulega er aðeins hægt að nota það til að finna formþætti byggða með: , , , og .

Á venjulegri innskráningarsíðu ertu með innsláttarreiti sem gætu verið eins og:

Við getum síðan fundið tölvupóstsreitinn með eiginleiki inntaksheitis

driver.findElement(By.name('email'));

Eftir merki nafni

Þessi staðsetningarmaður finnur þætti eftir HTML merkinu. Þar sem oft eru margar endurteknar notanir á flestum merkjum er ekki góð hugmynd að nota þessa aðferð til að finna einn þátt.

Dæmigerð notkun staðsetningar á frumefni eftir heiti merkis er til að finna fyrirsíðu síðunnar, þar sem það er aðeins eitt af þessum:

Welcome to DevQA!

Við getum síðan fundið fyrirsagnarreitinn eftir merkinu:

driver.findElement(By.tagName('h1'));

Eftir CSS vali

Finnur þætti með undirliggjandi W3 CSS Selector vél ökumanns. CSS valkostalokari er öflugur þar sem hægt er að nota hann til að finna hvaða frumefni sem er á síðu.

Forgotten Password

Við getum síðan fundið tölvupóstsreitinn með eiginleiki inntaksheitis

driver.findElement(By.cssSelector('#change-password'));

Hér, # táknar auðkenni frumefnisins. Og . táknun táknar flokk eiginleika frumefnis.

Til dæmis:

driver.findElement(By.cssSelector('.btn'));

Tengt:



Eftir XPath

XPath staðsetningarmenn eru flóknasti valkosturinn sem notaður er. Það krefst þekkingar í XPath fyrirspurnarmáli, þannig að ef þú ert ekki reiprennandi í því fyrirspurnarmáli, muntu eiga erfitt með að finna þætti með XPath fyrirspurnum.

Við skulum skoða dæmi um notkun XPath fyrir þessa HTML:

Change Password

Við getum síðan fundið tölvupóstsreitinn með eiginleiki inntaksheitis

driver.findElement(By.xpath('//a[@id='change-password']'));

Samskipti við vefþætti

Þegar við höfum fundið frumefni á síðunni getum við haft samskipti við það með ýmsum aðferðum sem selen veitir.

Selen WebDriver býður upp á nokkrar leiðir til að hafa samskipti við vefþætti eins og að smella á senda hnappa og slá inn texta í innsláttarreiti.

The WebElement bekkur hefur fjölda aðferða sem við getum notað til að hafa samskipti við síðuþætti. Algengustu eru:

  • click()
  • clear()
  • sendKeys()
  • submit()

Smellur

The click() aðferð er notuð til að smella á vefþátt eins og tengil eða hnapp.

Dæmi:

Menu WebElement mToggle = driver.findElement(By.id('menu-toggle')); mToggle.click();

Hreinsa

The clear() aðferð hreinsar gildi inntaksreits.

Ábending:Mælt er með því að nota .hreinsa () aðferð áður en þú slærð inn texta í innsláttarreitinn.

Dæmi:

WebElement username = driver.findElement(By.id('username')); username.clear();

SendKeys

Við notum sendKeys() aðferð til að slá inn stafi í innsláttarreitinn.

Dæmi:

WebElement username = driver.findElement(By.id('username')); username.sendKeys('jondoe');

Dæmi - Fylltu út eyðublað

Hér að neðan er dæmi um hvernig á að nota Selen til að fylla út eyðublað

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();

Nú þegar við höfum farið yfir grunnatriði Selenium WebDriver er kominn tími til að byggja upp ramma.

Byggðu upp Selenium Framework

Lærðu hvernig á að byggja selen ramma frá grunni.

Fyrri hluti námskeiðsins veitir skref fyrir skref um hvernig á að búa til selen WebDriver ramma með Java, Maven og TestNG.

Seinni hlutinn fjallar um uppbyggingu á selenprófunum sem byggja á hinu fræga Page Object Model.