I-Selenium Tutorial - Funda i-Automation Browser ne-Selenium WebDriver

I-Selenium iqoqo lemitapo yolwazi esetshenziselwa ukulingisa ukuxhumana komsebenzisi nesiphequluli.

Abasebenzisi babhala imibhalo besebenzisa imitapo yolwazi ye-selenium ukulingisa ukuxhumana okuvamile kwesiphequluli somsebenzisi, njengokuzulazula ekhasini, ngokuchofoza inkinobho nokugcwalisa ifomu.

I-Selenium isetshenziswa kakhulu kumaphrojekthi akha izinhlelo zokusebenza ze-web front-end (UI). Isetshenziselwa ukwenza izimo zilingise ukusebenzisana komsebenzisi nohlelo lokusebenza lwewebhu.




Faka iSelenium

Ukuze usebenzise iSelenium WebDriver kuphrojekthi, kufanele kuqala sifake iSelenium Core neWebDriver Binaries.

Futhi kufanele sibekele indlela umshayeli ngamunye ongaphunyelelwa.


Uma ufuna ukusebenzisa iSelenium ngeJava, khona-ke indlela elula yokufaka iSelenium nge-Maven dependency kuphrojekthi yakho pom.xml ifayela:


org.seleniumhq.selenium
selenium-java
3.141.59

Ukuze usebenzise izivivinyo zeSelenium ku-Google Chrome noma isiphequluli seFirefox, udinga ukwengeza ukuncika okufanelekile ku- pom.xml ifayela:

Isiphequluli se-Google Chrome


org.seleniumhq.selenium
selenium-chrome-driver
3.141.59

Isiphequluli seFirefox


org.seleniumhq.selenium
selenium-firefox-driver
3.141.59

Faka i-WebDriver Binaries bese usetha iPath

Ukwenza izivivinyo zeSelenium esipheqululini esithile, udinga ukuthi ufake ama-binaries aqondene nesiphequluli esithile se-WebDriver futhi usethe indlela elungile.

I-Chrome Ukusetha indlela eya ku-chromium ephumelelayo kusistimu ye-MacOS, ungasebenzisa:


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

Ungasetha futhi indlela ngokuhleleka, iqonde kukhodi:

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

IFirefox - iGeckodriver:

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

Umphetho:

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

I-Internet Explorer:


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

Instantiate Browser Driver

Ngemuva kokufaka iSelenium, okulandelayo ukufaka umshayeli wesiphequluli othize ukuze enze izivivinyo ze-UI.

Ukuhlolwa kwe-Selenium kwenziwa ngokumelene nesixhumi esibonakalayo sohlelo lokusebenza futhi kudinga isiphequluli esizosebenza naso. Singacacisa ukuthi yisiphi isiphequluli esifuna ukwenza izivivinyo zethu ngaso bese siqinisa umshayeli ofanele.

Qaphela:Ukuhlolwa kwe-Selenium kusetshenziselwa kuphela i- Ukuzenzakalela kwe-UI futhi izivivinyo ziphikisana nesiphequluli.

I-Chrome

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

IFirefox

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

Umphetho

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

I-Internet Explorer

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

Ukuzulazula Kwesiphequluli

Lapho sesineseshini esebenzayo yeWebDriver futhi sesethule isiphequluli, into elandelayo esifuna ukuyenza ukuzulazulela ekhasini nokuqalisa izivivinyo.

I-Selenium WebDriver inikeza izindlela eziningi eziwusizo zokuxhumana nesiphequluli. Singakwazi ukuzulazula futhi sithole imininingwane mayelana nekhasi lamanje.


Ukuya ku-URL sinezinketho ezimbili:

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

Ukubuyela Emuva

I-Selenium back() indlela ilingisa ngokuchofoza inkinobho yangemuva yesiphequluli:

driver.navigate().back();

Ukuya Phambili

I-Selenium forward() indlela ilingisa ngokuchofoza inkinobho yokudlulisa phambili yesiphequluli:

driver.navigate().forward();

Ivuselela Ikhasi

I-Selenium refresh() indlela ilingisa ngokuchofoza inkinobho yokuvuselela isiphequluli:


driver.navigate().refresh();

Ukuthola Ulwazi Lwamakhasi Lamanje

I-Selenium iphinde inikeze izindlela zokuthola i-url yamanje, isihloko sekhasi nomthombo wekhasi.

Thola i-URL yamanje

Singathola i-URL yekhasi lamanje:

driver.getCurrentUrl();

Thola isihloko sekhasi

Singathola isihloko sekhasi lamanje:

driver.getTitle();

Thola Umthombo Wekhasi

Singathola umthombo wamanje wekhasi:

driver.getPageSource();

Ukuvala Nokuyeka Iseshini Yesiphequluli

Ukuvala iwindi lesiphequluli lamanje:

driver.close(); Qaphela:Ukuvala iwindi lesiphequluli akunjalo nqamula iseshini yeWebDriver.

Ukuyeka iseshini yeWebDriver ekugcineni kokusetshenziswa kokuhlola:

driver.quit();

Indlela yokuyeka izokwenza lokhu:

  • Vala wonke amawindi ahlobene naleso seshini seWebDriver
  • Bulala inqubo yesiphequluli
  • Bulala inqubo yokushayela


Izindawo zeSelenium - Ungazithola Kanjani Izinto Eziqukethwe yiWebhu

Ngaphambi kokukwazi ukuxhumana nento yewebhu, sidinga ukuthola into ekhasini le-html.

Elinye lamakhono abaluleke kakhulu kunjiniyela wokuzenzekelayo wokuhlola osebenza neSelenium WebDriver ukukwazi ukusebenzisa izindlela ezifanele ukuthola izinto ekhasini.

Isibonelo, uma sifuna ukuchofoza isixhumanisi, qinisekisa ukuthi umyalezo uboniswa noma uchofoze inkinobho, sidinga ukuthola kuqala into.

I-Selenium WebDriver inikeza izindlela ezahlukahlukene zokuthola izinto ekhasini.

Isitholi sendawo sichaza lokho ofuna ukukuthola ekhasini. KuJava, sakha isitholi ngokusebenzisa i- By isigaba.

Isibonelo, uma besifuna ukuthola i- h1 Isihloko ekhasini, singabhala

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

Noma, uma besifuna ukuthola zonke izinto zesigaba ekhasini, besizosebenzisa

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

Ngombhalo wesixhumanisi

Le ndlela ithola izinto ngombhalo oqondile eziwubonisayo. Le ndlela imvamisa iyindawo ethanda izixhumanisi ekhasini.

Isibonelo, ake sithi sinalesi sixhumanisi ekhasini:

Forgotten Password

Ngemuva kwalokho, isixhumanisi singatholakala kusetshenziswa:

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

Ngombhalo wesixhumanisi oyingxenye

Lapho singaqiniseki ngegama eliqondile lombhalo wokuxhumanisa kepha sifuna ukuthola isixhumanisi noma izixhumanisi iqukethe umbhalo onikeziwe, singawusebenzisa

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

noma

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

Kufanele uqaphele lapho usebenzisa findElement nale locator njengoba kungaba nezinye izinto eziqukethe umbhalo ofanayo oyingxenye, ngakho-ke lokhu akufanele kusetshenziselwe ukuthola into eyodwa iyodwa. Kungcono ukuyisebenzisa ukuthola iqembu lezinto usebenzisa indlela findElements.

Ngemfanelo yesigaba

Lokhu kuthola izinto ngenani lemfanelo yekilasi. Lokhu kungasetshenziselwa kuphela lezo zinto ezinemfanelo yeklasi, kepha akusisi sikhethi esihle ongasisebenzisa ne- findElement indlela.

Usebenzisa isibonelo esifanayo ngenhla nesixhumanisi, isixhumanisi esithi 'Ukhohlwe Iphasiwedi' sinesigaba esisodwa se-CSS: btn engasetshenziselwa ukuyithola

Forgotten Password

Ngemuva kwalokho, isixhumanisi singatholakala kusetshenziswa:

driver.findElement(By.className('btn')); Qaphela:Imfanelo yekilasi isetshenziselwa amakhasi wesitayela, ngakho-ke amathuba ukuthi izinto eziningi kungenzeka zibe nesigaba esifanayo.

Ngu-id

Nge-id, ithola izinto ngenani lemfanelo yazo ye-id. Isixhumanisi esibonelweni esingenhla sine-id esingayisebenzisa:

Forgotten Password

Ngemuva kwalokho, isixhumanisi singatholakala kusetshenziswa:

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

Uma isibaluli se-id sitholakala, lapho-ke kufanele sisetshenziswe njengenketho yokuqala oyithandayo.

Ngegama

Ithola izinto ngenani lemfanelo yamagama wazo. Imvamisa ingasetshenziswa kuphela ukuthola izinto zefomu ezakhiwe kusetshenziswa: , , , futhi .

Ekhasini elijwayelekile lokungena ngemvume, unezinkambu zokufaka ezingafana:

Ngemuva kwalokho singathola inkambu ye-imeyili ngemfanelo yegama lokufaka

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

Ngegama lomaka

Le locator ithola izinto ngegama lazo lethegi ye-HTML. Njengoba kuvame ukusetshenziswa okuningi okuphindaphindwayo kwamathegi amaningi, akuwona umqondo omuhle ukusebenzisa le ndlela ukuthola into eyodwa.

Ukusetshenziswa okujwayelekile kokuthola into ngegama lethegi ukuthola indawo yekhasi, njengoba kukhona okukodwa kwalokhu:

Welcome to DevQA!

Ngemuva kwalokho singathola inkambu yesihloko ngegama lethegi:

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

Ngokhetho lweCss

Ithola izinto ngenjini yomshayeli we-W3 CSS Selector. Isitholi sesikhethi seCSS sinamandla njengoba singasetshenziswa ukuthola noma iyiphi into ekhasini.

Forgotten Password

Ngemuva kwalokho singathola inkambu ye-imeyili ngemfanelo yegama lokufaka

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

Lapha, # imele i-id yento. Futhi . i-notation imelela imfanelo yeklasi yento ethile.

Ngokwesibonelo:

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

Okuhlobene:

Nge-XPath

Izindawo ze-XPath yizikhethi eziyinkimbinkimbi kunazo zonke ongazisebenzisa. Kudinga ulwazi ngolimi lwemibuzo ye-XPath, ngakho-ke uma ungalwazi kahle lolo lwazi lwemibuzo, uzothola kunzima ukuthola izinto usebenzisa imibuzo ye-XPath.

Ake sibheke ukusetshenziswa kwesibonelo kwe-XPath kwale HTML:

Change Password

Ngemuva kwalokho singathola inkambu ye-imeyili ngemfanelo yegama lokufaka

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

Hlanganyela nama-Web Elements

Lapho sesitholile into ekhasini, singaxhumana nayo sisebenzisa izindlela eziningi ezihlinzekwa yi-selenium.

I-Selenium WebDriver inikeza izindlela eziningi zokuxhumana nezinto zewebhu njengokuchofoza ukuhambisa izinkinobho nokufaka umbhalo ezinkambu zokufaka.

I- WebElement isigaba sinezindlela eziningi esingazisebenzisa ukuxhumana nezinto zekhasi. Okuvame kakhulu yile:

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

Chofoza

I- click() indlela isetshenziselwa ukuchofoza into yewebhu enjengesixhumanisi noma inkinobho.

Isibonelo:

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

Kucacile

I- clear() indlela isula inani lenkambu yokufaka.

Ithiphu:Kunconywa ukuthi usebenzise i kucace () ngaphambi kokufaka umbhalo kunkambu yokufaka.

Isibonelo:

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

SendKeys

Sisebenzisa i- sendKeys() ukufaka izinhlamvu ebhokisini lenkambu yokufaka.

Isibonelo:

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

Isibonelo - Ukugcwalisa ifomu

Ngezansi kunesibonelo sendlela yokusebenzisa iSelenium ukugcwalisa ifomu

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

Manje njengoba sesimboze izisekelo zeSelenium WebDriver, sekuyisikhathi sokwakha uhlaka.



Yakha Uhlaka lweSelenium

Funda ukuthi ungakha kanjani uhlaka lwe-selenium kusuka ekuqaleni.

Ingxenye yokuqala yesifundo inikezela ngesinyathelo ngesinyathelo sendlela yokwakha uhlaka lwe-selenium WebDriver kusetshenziswa iJava, Maven neTestNG.

Ingxenye yesibili igxile ekwakheni izivivinyo ze-selenium ngokususelwa ku-Model Object Model edumile.