I-Selenium iseti yamathala eencwadi asetyenziselwa ukulinganisa unxibelelwano lomsebenzisi kunye nesikhangeli.
Abasebenzisi babhala izikripthi besebenzisa iilayibrari ze-selenium ukulingisa ukusebenzisana kwesiqulathi somsebenzisi esiqhelekileyo, njengokuhamba uye kwiphepha, ucofa iqhosha kwaye ugcwalise ifom.
I-Selenium ihlala isetyenziswa kwiiprojekthi ezakha usetyenziso lwe-web-end-end (UI). Isetyenziselwa ukwenza izinto ezizenzekelayo ezilinganisa unxibelelwano lomsebenzisi kunye nokusetyenziswa kwewebhu.
Ukusebenzisa iSelenium WebDriver kwiprojekthi, kufuneka kuqala sifake iSelenium Core kunye neWebDriver Binaries.
Kuya kufuneka sibeke umendo kumqhubi ngamnye oza kuphunyezwa.
Ukuba ufuna ukusebenzisa iSelenium ngeJava, eyona ndlela ilula yokufaka iSelenium kukuxhomekeka kweMaven kwiprojekthi yakho pom.xml
ifayile:
org.seleniumhq.selenium
selenium-java
3.141.59
Ukuqhuba iimvavanyo zeSelenium kwiGoogle Chrome okanye kwisikhangeli seFirefox, kuya kufuneka ukongeza ukuxhomekeka okufanelekileyo | | + _ | | ifayile:
pom.xml
org.seleniumhq.selenium
selenium-chrome-driver
3.141.59
Ukwenza uvavanyo lweSelenium kwisikhangeli esithile, kuya kufuneka ufake isikhombisi esithile seWebDriver kunye neendlela ezichanekileyo.
Chrome Ukuseta indlela eya kwi-chromium ephumezayo kwinkqubo yeMacOS, ungasebenzisa:
org.seleniumhq.selenium
selenium-firefox-driver
3.141.59
Unokuseta indlela ngokwenkqubo, ngqo kwikhowudi:
$ export PATH='$PATH:/path/to/chromedriver'
IFirefox-Geckodriver:
System.setProperty('webdriver.chrome.driver', '/path/to/chromedriver');
Umda:
System.setProperty('webdriver.gecko.driver', '/path/to/geckodriver');
I-Internet Explorer:
System.setProperty('webdriver.edge.driver', 'C:/path/to/MicrosoftWebDriver.exe');
Emva kokufaka iSelenium, okulandelayo kukuqinisekisa umqhubi othile wesikhangeli ukuze usebenze uvavanyo lwe-UI.
Uvavanyo lweSelenium luqhutywa ngokuchasene nomsebenzisi wesicelo kwaye lufuna isikhangeli ukuba sisebenze naso. Singachaza ukuba yeyiphi na isikhangeli esifuna ukuqhuba kuyo kwaye siqinisekise umqhubi ofanelekileyo.
Phawula:Uvavanyo lweSelenium lusetyenziselwa kuphela UI matshini kwaye iimvavanyo zihambelana nesikhangeli.System.setProperty('webdriver.ie.driver', 'C:/path/to/IEDriver.exe');
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();
Nje ukuba sibe neseshoni esebenzayo yeWebDriver kwaye siqalise isikhangeli, into elandelayo esifuna ukuyenza kukuya kwiphepha kwaye sibale iimvavanyo.
I-Selenium WebDriver ibonelela ngeendlela zokunxibelelana nesikhangeli. Sinokwenza ukukhangela kwaye sifumane ulwazi malunga nephepha langoku.
Ukuhamba uye kwi-URL sinezinto ezimbini onokukhetha kuzo:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; WebDriver driver = new InternetExplorerDriver();
Indawo yeSelenium //The short form driver.get('https://devqa.io'); //The long form driver.navigate().to('https://devqa.io');
Inkqubo ilinganisa ukucofa iqhosha elingasemva lomkhangeli zincwadi:
back()
Indawo yeSelenium driver.navigate().back();
indlela efanisa ukucofa iqhosha lokuya phambili lomkhangeli zincwadi:
forward()
Indawo yeSelenium driver.navigate().forward();
indlela efanisa ukucofa iqhosha lokuhlaziya lomkhangeli:
refresh()
I-Selenium ikwabonelela ngeendlela zokufumana i-url yangoku, isihloko sephepha kunye nomthombo wephepha.
Singafumana i-URL yephepha langoku:
driver.navigate().refresh();
Singasifumana isihloko sephepha langoku:
driver.getCurrentUrl();
Singafumana umthombo wephepha langoku:
driver.getTitle();
Ukuvala iwindow yangoku:
driver.getPageSource();
Phawula:Ukuvala iwindow ayi Ukuphelisa iseshoni yeWebDriver.Ukuyeka iseshoni yeWebDriver ekupheleni kovavanyo lokusetyenziswa:
driver.close();
Indlela yokuyeka iya:
Ngaphambi kokuba sikwazi ukunxibelelana nento yewebhu, kufuneka sifumane indawo kwiphepha le-html.
Esinye sezona zakhono zibaluleke kakhulu kwinjineli yovavanyo oluzenzekelayo esebenza neSelenium WebDriver kukuba nakho ukusebenzisa iindlela ezifanelekileyo zokufumana izinto kwiphepha.
Umzekelo, ukuba sifuna ukucofa ikhonkco, qinisekisa ukuba umyalezo ubonisiwe okanye ucofe iqhosha, kufuneka siqale sifumane indawo leyo.
I-Selenium WebDriver ibonelela ngeendlela ezahlukeneyo zokufumana izinto kwiphepha.
Indawo eyiyo ichaza into ofuna ukuyifumana kwiphepha. KwiJava, senza indawo yokusebenza ngokusebenzisa driver.quit();
| iklasi.
Umzekelo, ukuba sifuna ukufumana By
Isihloko kwiphepha, singabhala
h1
Okanye, ukuba sifuna ukufumana zonke iziqendu zephepha, sinokusebenzisa
WebElement h1Element = driver.findElement(By.tagName('h1'));
Le ndlela ibeka izinto ngokombhalo ochanekileyo owubonisayo. Le ndlela ihlala ikhetha indawo enxibelelana nayo kwiphepha.
Umzekelo, masithi sineli khonkco kwiphepha:
List pElements = driver.findElements(By.tagName('p'));
Emva koko, ikhonkco linokufumaneka usebenzisa:
Forgotten Password
Xa singaqinisekanga ngamagama ngqo esiqhagamshelo kodwa sifuna ukufumana ikhonkco okanye amakhonkco iqulethe Isicatshulwa esinikiweyo, sinokusebenzisa
driver.findElement(By.linkText('Forgotten Password'));
okanye
driver.findElement(By.partialLinkText('Forgotten '));
Kuya kufuneka ulumke xa usebenzisa driver.findElement(By.partialLinkText('Password'));
ngalo ndawo ikhoyo njengoko kunokubakho ezinye izinto ezinesicatshulwa esifanayo, ke oku akufuneki kusetyenziselwe ukufumana into enye iyodwa. Kungcono ukuyisebenzisa ukukhangela iqela lezinto usebenzisa findElement
indlela.
Oku kufaka izinto ngexabiso leklasi. Oku kunokusetyenziselwa kuphela ezo zinto zinophawu lweklasi, kodwa ayisiyiyo into elungileyo ukuyisebenzisa kunye findElements
indlela.
Sebenzisa lo mzekelo ungasentla nekhonkco, ikhonkco 'eliliweyo iphasiwedi' linodidi olunye lweCSS: findElement
enokusetyenziselwa ukuyifumana
btn
Emva koko, ikhonkco linokufumaneka usebenzisa:
Forgotten Password
Phawula:Inqaku leklasi lisetyenziselwa iphepha lokushicilela, kwaye ke amathuba kukuba izinto ezininzi zinokuba neklasi enye.Nge-id, fumana izinto ngexabiso lophawu lwazo lwe-id. Ikhonkco elikumzekelo ongentla linayo i-id esinokuyisebenzisa:
driver.findElement(By.className('btn'));
Emva koko, ikhonkco linokufumaneka usebenzisa:
Forgotten Password
Ukuba uphawu lwe-id luyafumaneka, kuya kufuneka lusetyenziswe njengokhetho lokuqala olukhethiweyo.
Khangela izinto ngexabiso legama labo. Ngokwesiqhelo inokusetyenziselwa kuphela ukufumana izinto ezakhiweyo kusetyenziswa: driver.findElement(By.id('change-password'));
, ,
, kunye
.
Kwiphepha lokungena eliqhelekileyo, uneendawo zokufaka ezinokuthi zifane:
Emva koko sinokuyifumana indawo ye-imeyile ngegama lophawu lokufaka
Le locator ifumana izinto ngegama labo lethegi ye-HTML. Kuba zihlala ziphindaphindeka ukusetyenziswa kweethegi ezininzi, ayisiyongqondo ilungileyo ukusebenzisa le ndlela ukufumana into enye.
Ukusetyenziswa kwesiqhelo kokufumana into ngegama lethegi kukufumana isihloko sephepha, njengoko inye kuphela kwezi:
driver.findElement(By.name('email'));
Emva koko sinokuyifumana indawo enesihloko ngegama lethegi:
Welcome to DevQA!
Ukufumana izinto ngokusebenzisa i-W3 CSS Selector yomqhubi. Indawo yokukhetha ye-CSS inamandla njengoko inokusetyenziselwa ukukhangela nayiphi na into kwiphepha.
driver.findElement(By.tagName('h1'));
Emva koko sinokuyifumana indawo ye-imeyile ngegama lophawu lokufaka
Forgotten Password
Apha, driver.findElement(By.cssSelector('#change-password'));
imele i-id yento leyo. Kwaye #
uphawu lubonisa uphawu lweklasi yento ethile.
Umzekelo:
.
Idibeneyo:
Izixhobo ze-XPath zezona zikhethiweyo zinokusetyenziswa. Ifuna ulwazi kulwimi lwemibuzo ye-XPath, ke ukuba awuluthethi kakuhle olo lwimi lwemibuzo, uyakufumana kunzima ukufumana izinto usebenzisa imibuzo ye-XPath.
Makhe sijonge umzekelo wokusetyenziswa kwe-XPath yale HTML:
driver.findElement(By.cssSelector('.btn'));
Emva koko sinokuyifumana indawo ye-imeyile ngegama lophawu lokufaka
Change Password
Nje ukuba sifumane into kwiphepha, singanxibelelana nayo sisebenzisa iindlela ezininzi ezibonelelwa yiSelenium.
I-Selenium WebDriver ibonelela ngeendlela ezininzi zokunxibelelana nezinto zewebhu njengokucofa ukungenisa amaqhosha kunye nokufaka isicatshulwa kwimihlaba yokufaka.
I driver.findElement(By.xpath('//a[@id='change-password']'));
iklasi ineendlela ezininzi esinokuthi sizisebenzise ukunxibelelana nezinto zephepha. Ezona zixhaphakileyo zezi:
WebElement
click()
clear()
sendKeys()
I submit()
indlela isetyenziselwa ukucofa into yewebhu enjengekhonkco okanye iqhosha.
Umzekelo:
click()
Menu
I WebElement mToggle = driver.findElement(By.id('menu-toggle')); mToggle.click();
indlela icoca ixabiso lefildi yokufaka.
Umzekelo:
clear()
Sisebenzisa WebElement username = driver.findElement(By.id('username')); username.clear();
indlela yokufaka abalinganiswa kwibhokisi yentsimi yegalelo.
Umzekelo:
sendKeys()
Apha ngezantsi ngumzekelo wendlela yokusebenzisa iSelenium ukugcwalisa ifom
WebElement username = driver.findElement(By.id('username')); username.sendKeys('jondoe');
username:
Last name:
Ngoku sigqume iziseko zeSelenium WebDriver, lixesha lokwakha isakhelo.
Funda ukuba ungakha njani isakhelo selenium ukusuka ekuqaleni.
Inxalenye yokuqala yesifundo inika inyathelo nenyathelo ngenyathelo lendlela yokwenza i-selenium WebDriver sikhokelo usebenzisa iJava, Maven kunye neTestNG.
Icandelo lesibini ligxile kulwakhiwo lweemvavanyo ze-selenium esekwe kwiModeli yeNqaku lodumo.