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.
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:
org.seleniumhq.selenium
selenium-chrome-driver
3.141.59
org.seleniumhq.selenium
selenium-firefox-driver
3.141.59
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');
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.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();
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');
I-Selenium back()
indlela ilingisa ngokuchofoza inkinobho yangemuva yesiphequluli:
driver.navigate().back();
I-Selenium forward()
indlela ilingisa ngokuchofoza inkinobho yokudlulisa phambili yesiphequluli:
driver.navigate().forward();
I-Selenium refresh()
indlela ilingisa ngokuchofoza inkinobho yokuvuselela isiphequluli:
driver.navigate().refresh();
I-Selenium iphinde inikeze izindlela zokuthola i-url yamanje, isihloko sekhasi nomthombo wekhasi.
Singathola i-URL yekhasi lamanje:
driver.getCurrentUrl();
Singathola isihloko sekhasi lamanje:
driver.getTitle();
Singathola umthombo wamanje wekhasi:
driver.getPageSource();
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:
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'));
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'));
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
.
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.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.
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'));
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'));
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:
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']'));
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()
I- click()
indlela isetshenziselwa ukuchofoza into yewebhu enjengesixhumanisi noma inkinobho.
Isibonelo:
Menu
WebElement mToggle = driver.findElement(By.id('menu-toggle')); mToggle.click();
I- clear()
indlela isula inani lenkambu yokufaka.
Isibonelo:
WebElement username = driver.findElement(By.id('username')); username.clear();
Sisebenzisa i- sendKeys()
ukufaka izinhlamvu ebhokisini lenkambu yokufaka.
Isibonelo:
WebElement username = driver.findElement(By.id('username')); username.sendKeys('jondoe');
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.
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.