Selenium waa maktabado go'an oo loo isticmaalo in lagu daydo isdhexgalka isticmaalaha ee biraawsarka.
Isticmaalayaashu waxay qoraan qoraallo iyagoo adeegsanaya maktabadaha selenium si ay ugu ekeysiiyaan isdhexgalka adeegsadaha isticmaalaha caadiga ah, sida marinka bogga, dhagsii badhanka iyo buuxinta foomka.
Selenium waxaa badanaa loo isticmaalaa mashaariicda dhisaya codsiyada wejiga hore (UI). Waxaa loo adeegsadaa si otomaatig ah dhacdooyin u ekeysiiya isdhexgalka isticmaalaha ee websaydhka.
Si loogu isticmaalo Selenium WebDriver mashruuc, marka hore waa inaan rakibnaa Selenium Core iyo WebDriver Binaries.
Sidoo kale waa inaanu dariiqa u dajino darawal kasta oo la fulin karo.
Haddii aad rabto inaad ku isticmaasho Selenium Java, markaa habka ugu fudud ee loo rakibo Selenium waa iyada oo loo marayo ku tiirsanaanta Maven ee mashruucaaga _ _ + _ | faylka:
pom.xml
Si aad ugu socodsiiso tijaabooyinka Selenium Google Chrome ama Firefox biraawsarka, waxaad u baahan tahay inaad ku darto ku tiirsanaanta ku habboon ee ah _ _ + _ | faylka:
org.seleniumhq.selenium
selenium-java
3.141.59
pom.xml
Si aad ugu fuliso tijaabooyinka Selenium bog furaha gaarka ah, waxaad u baahan tahay inaad heshid xirmooyinka khaaska ah ee gaarka u ah WebDriver oo la rakibo iyo wadada saxda ah ee loo dejiyey.
Chrome Si aad ugu dejiso dariiqa loo maro chromium ee lagu fulin karo nidaamka MacOS, waxaad isticmaali kartaa:
org.seleniumhq.selenium
selenium-chrome-driver
3.141.59
Waxaad sidoo kale jaan goyn kartaa barnaamijka si toos ah, si toos ah koodhka:
org.seleniumhq.selenium
selenium-firefox-driver
3.141.59
Firefox - Geckodriver:
$ export PATH='$PATH:/path/to/chromedriver'
Gees:
System.setProperty('webdriver.chrome.driver', '/path/to/chromedriver');
Internet Explorer:
System.setProperty('webdriver.gecko.driver', '/path/to/geckodriver');
Ka dib markaad rakibto Selenium, ku xigta waa in la dejiyo darawal biraawsar gaar ah si loo wado tijaabooyinka UI.
Imtixaannada 'Selenium' waxaa laga horkeenaa is-dhexgalka adeegsadaha ee codsi waxayna u baahan yihiin biraawsar si uu ula shaqeeyo. Waan qeexi karnaa nooca biraawsarka aan dooneyno inaan ku tijaabino tijaabooyinkeena ka dibna aan u hawlgalino darawalka ku habboon.
Fiiro gaar ah:Tijaabooyinka Selenium ayaa loo isticmaalaa oo keliya Otomaatiga UI Imtixaanadana waxay ka hor yimaadaan biraawsar.System.setProperty('webdriver.edge.driver', 'C:/path/to/MicrosoftWebDriver.exe');
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();
Marka aan leenahay kalfadhi WebDriver firfircoon oo aan bilownay biraawsar, waxa xiga ee aan dooneyno inaan sameyno waa inaan u gudubno bog oo aan tijaabino tijaabooyin.
Selenium WebDriver waxay bixisaa dhowr habab waxtar leh oo lagula falgalo biraawsarka. Waan fulin karnaa marinka oo waxaan ka heli karnaa macluumaad ku saabsan bogga hadda jira.
Si aan ugu gudubno URL waxaan haysannaa laba ikhtiyaar:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.edge.EdgeDriver; WebDriver driver = new EdgeDriver();
The Selenium import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; WebDriver driver = new InternetExplorerDriver();
habku wuxuu u ekaysiinayaa gujinta badhanka biraawsarka gadaashiisa:
//The short form driver.get('https://devqa.io'); //The long form driver.navigate().to('https://devqa.io');
The Selenium back()
habku wuxuu u ekaysiinayaa gujinta badhanka biraawsarka:
driver.navigate().back();
The Selenium forward()
habku wuxuu u dhigmaa gujinaya badhanka nuugista biraawsarka:
driver.navigate().forward();
Selenium sidoo kale waxay bixisaa habab lagu helo url hadda, cinwaanka bogga iyo isha bogga.
Waxaan heli karnaa bogga hadda jira URL:
refresh()
Waxaan heli karnaa cinwaanka bogga hadda jira:
driver.navigate().refresh();
Waxaan heli karnaa bogga hadda jira isha:
driver.getCurrentUrl();
Si loo xiro daaqada biraawsarka hadda jira:
driver.getTitle();
Fiiro gaar ah:Xidhida daaqada biraawsarka ma joojiso casharka WebDriver.Si aad u joojiso kalfadhiga WebDriver dhamaadka tijaabada isticmaalkeeda:
driver.getPageSource();
Habka joojinta ayaa:
Kahor intaanan awoodin inaan la falgalno shey webka ah, waxaan ubaahanahay inaan helno curiyaha bogga html.
Mid ka mid ah xirfadaha ugu muhiimsan ee injineer otomaatiga imtixaanka la shaqeeya Selenium WebDriver waa inuu awood u yeesho inuu adeegsado habab ku habboon si uu u helo walxaha bogga.
Tusaale ahaan, haddii aan rabno inaan gujino xiriir, xaqiijinno in farriin la muujiyey ama guji badhan, waxaan u baahanahay inaan marka hore helno curiyaha.
Selenium WebDriver waxay bixisaa habab kala duwan si loo helo walxaha bogga.
Tilmaamuhu wuxuu sharxayaa waxaad rabto inaad ka hesho bog. Java dhexdeeda, waxaan ku abuureynaa tilmaame adoo adeegsanaya driver.close();
fasalka.
Tusaale ahaan, haddii aan rabno inaan helno driver.quit();
cinwaanka cinwaanka bogga, waan qori lahayn
By
Ama, haddii aan dooneyno inaan ka helno dhammaan qodobbada cutubka bog, waan isticmaali lahayn
h1
Habkani wuxuu kuhelaa cunsurrada qoraalka saxda ah ee uu soo bandhigo. Habkani caadi ahaan waa doorbidista xayeysiinta bogagga.
Tusaale ahaan, ka soo qaad inaan ku leenahay xiriiriyahan bog:
WebElement h1Element = driver.findElement(By.tagName('h1'));
Kadib, xiriiriyeha waxaa lagu heli karaa iyadoo la adeegsanayo:
List pElements = driver.findElements(By.tagName('p'));
Marka aynaan hubin ereyga saxda ah ee qoraalka xiriirinta laakiin aan dooneyno inaan helno xiriir ama xiriiriyeyaal taas ka kooban yahay qoraalka la siiyay, waan isticmaali karnaa
Forgotten Password
ama
driver.findElement(By.linkText('Forgotten Password'));
Waa inaad taxaddar sameysaa markaad isticmaaleyso driver.findElement(By.partialLinkText('Forgotten '));
iyadoo laga helayo astaamahan maadaama ay jiri karaan cunsurro kale oo ay ku jiraan isla qoraalka qeyb ahaan, marka tan looma isticmaali karo in lagu helo hal cunsur keligeed. Waxaa ugufiican in loo adeegsado si loo helo koox walxo ah iyadoo la adeegsanayo habka driver.findElement(By.partialLinkText('Password'));
Tani waxay kuheshaa walxaha qiimaha astaamaha fasalka. Tan waxaa loo isticmaali karaa kaliya walxaha leh astaamo fasal, laakiin ma ahan xulasho wanaagsan in lagu isticmaalo findElement
habka.
Adoo adeegsanaya isla tusaalaha kore ee iskuxiraha, iskuxiraha 'Password-ka la ilaaway' wuxuu leeyahay hal fasal oo CSS ah: findElements
taas oo loo adeegsan karo helitaankeeda
findElement
Kadib, xiriiriyeha waxaa lagu heli karaa iyadoo la adeegsanayo:
btn
Fiiro gaar ah:Sifada fasalka waxaa loo adeegsadaa qaabeynta bogagga, sidaas awgeed fursadaha ayaa ah in walxo badan ay u badan tahay inay leeyihiin isla fasal.Id ahaan, waxay kuheshaa walxaha qiimaha astaantooda id. Xiriiriyaha tusaalaha kore wuxuu leeyahay id aan adeegsan karno:
Forgotten Password
Kadib, xiriiriyeha waxaa lagu heli karaa iyadoo la adeegsanayo:
driver.findElement(By.className('btn'));
Haddii sifaha id la heli karo, markaa waa in loo adeegsadaa xulashada koowaad ee la doorbiday.
Waxay kujirtaa walxaha qiimaha magacooda sifo. Caadi ahaan waxaa loo isticmaali karaa oo kaliya in lagu ogaado qaababka la dhisay iyadoo la adeegsanayo: Forgotten Password
, driver.findElement(By.id('change-password'));
, , iyo
.
Bogga galitaanka caadiga ah, waxaad ku leedahay goolal wax lagu daro oo noqon kara sida:
Waxaan markaa ka heli karnaa goobta emaylka adoo adeegsanaya astaamaha magaca soo galinta
Tilmaamuhu wuxuu ku helaa cunsurro magacooda tag HTML. Maaddaama ay badanaa jiraan adeegsiyo badan oo soo noqnoqda oo ah astaamaha ugu badan, ma aha fikrad wanaagsan in loo isticmaalo habkan si loo helo hal cunsur.
Isticmaalka caadiga ah ee lagu helo astaamaha magaca tag waxaa loogu talagalay helitaanka cinwaanka bogga, maaddaama ay jiraan mid ka mid ah kuwan:
Waxaan markaa ka heli karnaa goobta cinwaanka cinwaanka magaca:
driver.findElement(By.name('email'));
Waxay ka heshaa walxaha iyada oo loo marayo mashiinka W3 CSS Selector ee darawalka. Soosaarida CSS waa mid awood badan maadaama loo adeegsan karo in lagu helo qayb kasta oo ka mid ah bogga.
Welcome to DevQA!
Waxaan markaa ka heli karnaa goobta emaylka adoo adeegsanaya astaamaha magaca soo galinta
driver.findElement(By.tagName('h1'));
Halkan, Forgotten Password
waxay u taagan tahay id cunsurka. Iyo driver.findElement(By.cssSelector('#change-password'));
qoraalku wuxuu ka dhigan yahay sifada fasalka cunsur.
Tusaale ahaan:
#
La xiriira:
Tilmaamayaasha 'XPath' ayaa ah xulashada ugu adag ee la isticmaalo. Waxay u baahan tahay aqoon ku saabsan luuqadda weydiinta XPath, markaa haddii aadan si fiican ugu hadlin luqadda weydiintaas, waxaad ku adkaan doontaa inaad hesho walxo adeegsanaya weydiimaha XPath.
Aynu eegno tusaale adeegsiga XPath ee HTML-kan:
.
Waxaan markaa ka heli karnaa goobta emaylka adoo adeegsanaya astaamaha magaca soo galinta
driver.findElement(By.cssSelector('.btn'));
Mar alla markii aan ku helno cunsur bogga, waan la macaamili karnaa iyadoo la adeegsanayo noocyo badan oo habab ah oo ay selenium bixiso.
Selenium WebDriver waxay bixisaa dhowr siyaabood oo loola falgalo walxaha websaydhka sida gujinaya badhannada gudbinta iyo gelitaanka qoraalka meelaha la gelinayo.
The Change Password
fasalku wuxuu leeyahay habab dhowr ah oo aan u isticmaali karno inaan kula falgalno waxyaabaha bogga ku jira. Kuwa ugu caansan waa:
driver.findElement(By.xpath('//a[@id='change-password']'));
WebElement
click()
clear()
The sendKeys()
habka waxaa loo isticmaalaa in lagu gujiyo sheyga shabakadda sida iskuxiraha ama badhanka.
Tusaale:
submit()
click()
The Menu
Habka ayaa nadiifinaya qiimaha aagga soo galinta.
Tusaale:
WebElement mToggle = driver.findElement(By.id('menu-toggle')); mToggle.click();
clear()
Waxaan isticmaalnaa
Qaabka loo galiyo jilayaasha sanduuqa goobta wax laga galiyo.
Tusaale:
WebElement username = driver.findElement(By.id('username')); username.clear();
sendKeys()
Hoos waxaa ku yaal tusaale sida loo isticmaalo Selenium si loo buuxiyo foom
WebElement username = driver.findElement(By.id('username')); username.sendKeys('jondoe');
Hadda oo aan daboolnay aasaaska Selenium WebDriver, waa waqtigii la dhisi lahaa qaab.
Baro sida loo dhiso qaabka loo yaqaan 'selenium framework' oo laga soo bilaabo xoqida.
Qaybta koowaad ee casharku wuxuu bixinayaa tallaabo-tallaabo ah oo ku saabsan sida loo abuuro qaab-dhismeedka selenium WebDriver iyadoo la adeegsanayo Java, Maven iyo TestNG.
Qaybta labaad waxay diiradda saareysaa qaabeynta imtixaannada loo yaqaan 'selenium tests' iyadoo lagu saleynayo Model Object Model caan ah.