- I-Selenium inikeza uhlaka oluvulekile, olungenalo ulwazi ngesiphequluli ukuze luzenzekele futhi luqinisekise izinhlelo zokusebenza zewebhu kusetshenziswa i-WebDriver, i-IDE kanye ne-Grid.
- Izisekelo eziqinile ku-HTML, CSS, programming, locators kanye nokulinda zibalulekile ekubhaleni izivivinyo ze-Selenium ezithembekile nezihlala isikhathi eside.
- Amaphethini okuklama afana ne-Page Object Model kanye ne-locator eqinile kanye namasu okulinda anciphisa kakhulu ukuqhekeka futhi alula ukugcinwa kwesikhathi eside.
- Amathuluzi anjengeMaven, iSelenium Grid kanye neParasoft Selenic asiza ukwandisa ama-Selenium suites ngokusebenza okusheshayo, ukukhetha okuhlakaniphile kanye namakhono okuziphilisa.

Uma usaqala nje ngokuhlola iwebhu ngokuzenzakalela futhi uqhubeka nokuzwa ngeSelenium yonke indawo, lo mhlahlandlela ungowakho. Sizoxoxa ngokuthi i-Selenium iyini, ukuthi kungani ithandwa kangaka, ukuthi izingxenye zayo eziyinhloko zihlangana kanjani, nokuthi ungahamba kanjani kusukela ku-zero uye ekuqaliseni izivivinyo eziqinile ezinobungani nabaqalayo, isinyathelo ngesinyathelo, ngaphandle kokweqa imibono ebalulekile kumaphrojekthi angempela.
Endleleni uzobona ukuthi i-Selenium WebDriver, i-Selenium IDE kanye ne-Selenium Grid zisebenza kanjani ndawonye, ukuthi ungayifaka kanjani futhi uyilungiselele kanjani indawo yakho, nokuthi ungagwema kanjani izingibe zakudala ezenza ama-test suites abasaqalayo abe buthakathaka futhi abe buhlungu ukuwanakekela. Sizophinde sithinte imikhuba emihle yesimanje njenge-Page Object Model, ama-smart locator, i-waits for AJAX, ukusebenza kwesiphequluli esinqamula kanye nendlela amathuluzi afana ne-Maven noma izixazululo ezithuthukisiwe ezifana ne-Parasoft Selenic angenza ngayo impilo yakho ibe lula kakhulu.
Iyini i-Selenium nokuthi kungani amaqembu amaningi eyisebenzisa
I-Selenium iwuhlaka lomthombo ovulekile olwenzelwe ukuzenzakalela nokuqinisekisa izinhlelo zokusebenza zewebhu kuzo zonke iziphequluli ezahlukene kanye nezinhlelo zokusebenza. Ngokungafani namathuluzi amaningi ezentengiselwano, isekela izilimi eziningi zokuhlela (i-Java, i-Python, i-C#, i-JavaScript, nokuningi) futhi ihlangana kahle nokuhlola okukhona kanye nezinhlelo zemvelo ze-CI/CD, okwenza ikhange kakhulu amaqembu abo bonke osayizi.
Inhliziyo yale phrojekthi yi-Selenium WebDriver, i-API ejwayelekile ye-W3C ekuvumela ukuthi ushayele iziphequluli zangempela ngendlela ehlelekile. Isiphequluli ngasinye siveza umshayeli ozinikele (njenge-ChromeDriver ye-Chrome noma i-GeckoDriver ye-Firefox) othola imiyalo evela kukhodi yakho yokuhlola bese eyihumushela ezenzweni zesiphequluli sendabuko njengokuchofoza, ukuthayipha, ukuzulazula noma ukufunda ulwazi lwe-DOM.
I-Selenium yathola ukuthandwa hhayi nje ngoba imahhala, kodwa futhi ngenxa yomphakathi oqinile oyizungezile. Amadokhumenti, izifundo, amaphrojekthi esampula kanye nezingxoxo zemibuzo nezimpendulo zikhona yonke indawo, ngakho-ke uma ubhajwa, akuvamile ukuba isikhathi eside. Kwabaqalayo, lokhu kusho ukuthi awufundi wedwa: ungancika eminyakeni yokuhlangenwe nakho okwabiwe.
Esinye isizathu esikhulu esenza izinkampani zithembele ku-Selenium ukuguquguquka. Ikuvumela ukuthi uklame ukwakheka kwakho kokuzenzakalelayo kokuhlola, uxhume amalabhulali okuqinisekisa njenge-JUnit noma i-TestNG, usebenzise amathuluzi okwakha njenge-Maven noma i-Gradle, futhi uhlanganise namathuluzi e-CI afaka phakathi i-Jenkins, i-GitHub Actions noma i-GitLab CI. Awuvalelwe ohlelweni oluthile lwe-ecosystem oluvela kumthengisi.
Ngaphezu kwalokhu kuguquguquka, i-Selenium ivumela amaphethini okuhlola njengokwenziwa okuhambisanayo, ama-suites okubuyela emuva aqinile kanye nokuqinisekiswa kwesiphequluli esinqamulayo, okubaluleke kakhulu ezinhlelweni zokusebenza zewebhu zanamuhla. Ungenza izinkulungwane zezivivinyo ubusuku bonke kuma-node amaningi usebenzisa i-Selenium Grid, unciphise ama-feedback loops futhi uthuthukise ukuzethemba kokukhululwa.
Kusukela ku-JavaScriptTestRunner Kuya Kuzingxenye Zesimanje Ze-Selenium
Indaba yeSelenium iqala ngo-2004, lapho uJason Huggins edala ithuluzi elibizwa ngeJavaScriptTestRunner ukuze lizenzekele ukusebenzisana kwesiphequluli sezinhlelo zokusebenza zewebhu. Ngaleso sikhathi wayesebenza enkampanini yesofthiwe iThoughtWorks, futhi leli thuluzi ekuqaleni lalisetshenziswa ngaphakathi ukusheshisa ukuhlolwa nokunciphisa izindleko ngesikhathi sokuthuthukiswa.
Ngo-2007 uHuggins wajoyina i-Google futhi waqhubeka nokuthuthukisa nokwandisa uhlaka, olwagcina seluba umthombo ovulekile ngaphansi kwelayisensi ye-Apache 2.0. Ngokuhamba kwesikhathi, iphrojekthi yathuthuka, yahlanganiswa ne-WebDriver API futhi yahlanganiswa ngaphansi kwegama elihlanganisiwe elithi Selenium WebDriver esisalisebenzisa nanamuhla njengesitaki sesimanje.
Inguqulo yamanje ye-Selenium yakhelwe ngokuphelele ekusebenzisaneni kwe-HTML ne-JavaScript, okuvumela abathuthukisi ukuthi baqophe, baphinde badlale futhi benze izenzo zesiphequluli seskripthi ngendlela ezenzakalelayo ngokuphelele. Esikhundleni sokuphinda izinyathelo zokuhlola ezifanayo ngesandla ngokuphindaphindiwe, ungabhala ikhodi yokuziphatha kanye bese uyisebenzisa kaningi ngangokunokwenzeka, ngokuvamile njengengxenye yepayipi.
Ukuze lokhu kwenzeke, i-Selenium ihlukaniswe ngokunengqondo ibe yizingxenye eziningana ezibalulekile, ngayinye igxile engxenyeni ethile yendaba yokuhlolwa kokuzenzakalela. Ukuqonda lezi zingxenye kubalulekile uma ufuna ukusebenzisa i-Selenium ngempumelelo kunokuyisebenzisa njengebhokisi elimnyama.
Amamojula ayinhloko ozohlangana nawo yiSelenium Core, iSelenium IDE, iSelenium WebDriver kanye neSelenium Grid. Ngayinye idlala indima ehlukile: kusukela ekusebenzeni okuphansi, kuya ekurekhodeni nasekudlaleni kabusha, kuya ekulawulweni kwesiphequluli esisekelwe ku-API kanye nokusebenza okusabalalisiwe okukhulu.
Amathuluzi E-Core Selenium: IDE, WebDriver kanye neGrid
I-Selenium Core iyi-module eyisisekelo eyayinemisebenzi eyisisekelo ekuqaleni, okuhlanganisa i-JavaScriptTestRunner kanye ne-oda elidala le-API. Nakuba ungeke uxhumane neSelenium Core ngqo namuhla, yabeka isisekelo sayo yonke indawo futhi yathonya indlela imiyalo nezenzo ezihlelwe ngayo.
I-Selenium IDE iyindawo yokungena elula kakhulu kwabaqalayo, enikezwa njengesandiso sesiphequluli se-Chrome ne-Firefox. Ikuvumela ukuthi urekhode ukusebenzisana nesiphequluli (ukuchofoza, ukuthayipha, ukuzulazula) bese ukuphinda ukudlale kamuva, okuyinto enhle kakhulu ekuthwebuleni ngokushesha ukugeleza okulula ngaphandle kokubhala ikhodi.
Kodwa-ke, i-Selenium IDE inemikhawulo: izivivinyo ezirekhodiwe zingaba buthakathaka, ama-locator angase aphuke kalula, futhi kunzima ukugcina i-logic eyinkimbinkimbi emsebenzini ophelele werekhodi nokudlala. Yingakho noma yimuphi umsebenzi wesikhathi eside we-Selenium ongathi sína ugcina usudlulela ekuhlolweni kokubhala ikhodi kusetshenziswa i-Selenium WebDriver kanye nolimi oluphelele lokuhlela.
I-Selenium WebDriver iyisendlalelo esisekelwe ku-API esikhuluma nabashayeli besiphequluli bangempela. Ichaza iphrothokholi engathathi hlangothi kolimi evumela ukuthi ulawule ukuzulazula, usebenzisane nezakhi zekhasi, usebenzise iJavaScript futhi uthole ulwazi oluvela ku-DOM. Abathengisi besiphequluli basebenzisa abashayeli bezinjini zabo, kanti i-Selenium isebenzisa laba bashayeli noma nini lapho kungenzeka.
I-Selenium Grid yandisa i-WebDriver ukuze ukwazi ukwenza izivivinyo ngesikhathi esifanayo emishinini eminingi, iziphequluli kanye namapulatifomu. Ihambisa imiyalo yakho yokuhlola kuma-node ahlukene, inciphisa kakhulu isikhathi sokuhlola esiphelele sama-suite amakhulu futhi ivumela ukumbozwa okuqinile kwesiphequluli esibanzi kanye ne-cross-platform ngaphandle kokusebenzisa konke ebhokisini elilodwa, kanye nemibono efana ukubekezelela amaphutha ekusesheni okusatshalalisiwe ingazisa ukwakheka kweGridi yakho.
Indlela i-WebDriver, Abashayeli kanye Neziphequluli Ezisebenzisana Ngayo
Uma umusha ngokuphelele kulesi sigaba, kuyasiza ukubona i-WebDriver “njengesilawuli kude” kanye nedrayivu yesiphequluli ngasinye njenge-adaptha exhuma kumodeli ethile ye-TV. Ikhodi yakho yokuhlola ithumela imiyalelo ngeWebDriver, umshayeli uyihumushela ezenzweni ezithile zesiphequluli, bese isiphequluli siphendula ngokufanele.
Lokhu kuhlukana kwenziwa ngenhloso, ngoba kuphoqa abathengisi besiphequluli ukuthi babe nomthwalo wemfanelo ngemininingwane yokusetshenziswa. Amaqembu e-Chrome, Firefox, Edge kanye ne-Safari athumela futhi anakekele abashayeli bawo ukuze azi ukuthi angakhuluma kanjani nezinjini zawo, kuyilapho i-Selenium igxile ekuhlinzekeni i-API evamile, ebheke umsebenzisi ebekwe phezulu.
Ngokombono wakho njengomhloli noma unjiniyela, uvame ukusebenza nomtapo wolwazi ohlanganisa ulimi, amakilasi e-WebDriver kanye ne-driver executable. Ukubopha yilabhulali yeklayenti yolimi lwakho (isibonelo, i-Selenium Java noma i-Selenium Python), amakilasi e-WebDriver akunikeza ukucashunwa kwezenzo zesikripthi, kanti i-driver executable empeleni ilawula i-binary yesiphequluli.
Uhlaka lwe-Selenium luhlanganisa zonke lezi zingxenye ndawonye ukuze ukwazi ukushintsha phakathi kwabashayeli namapulatifomu ngokushintsha okuncane kwekhodi. Ukuhlolwa okufanayo okusebenza ku-Chrome ku-Windows, ngokulungiswa okuncane kokucushwa, kungasebenza ku-Firefox ku-Linux noma ku-Edge ku-macOS, okuyiwona mgomo wokuzenzakalela kwesiphequluli esinqamulayo.
Khumbula ukuthi ukusetha i-Selenium akuyona into ethi “chofoza okulandelayo” njengamathuluzi athile okuhweba. Ngaphambi kokubhala noma iyiphi ikhodi yokuhlola, kufanele ufake izibopho zolimi, ulande umshayeli wesiphequluli, uyilungiselele kuphrojekthi yakho futhi uqinisekise ukuthi iyatholakala ngesikhathi sakho sokuhlola.
Amakhono Abalulekile Ngaphambi Kokungena Ekuzisebenziseni Kwe-Selenium
Ngaphambi kokuthi uqale ukwenza izivivinyo zeWebDriver, kubalulekile ukuthi uzizwe ukhululekile ngobuchwepheshe bewebhu obuyisisekelo njenge-HTML ne-CSS. Akudingeki ube yingcweti eyinhloko, kodwa akufanele wesabe ukubuka umthombo wekhasi, ukuhlola izakhi, nokuqonda ukuthi uphawu luhambisana kanjani nalokho okubonayo kusiphequluli.
Ukukwazi ukusebenza ngokuzethemba ngamathuluzi onjiniyela besiphequluli kubaluleke ngokulinganayo. Uzochitha isikhathi esiningi usebenzisa ithebhu ethi Elements noma Inspector ukuthola ama-node, ukuhlola izimfanelo, nokuqinisekisa ukuthi ama-locator akho (ama-ID, izikhethi ze-CSS, izinkulumo ze-XPath) empeleni akhomba kuzinhloso ezifanele.
Ngasohlangothini lokubhala amakhodi, uzodinga okungenani amakhono okuhlela ezingeni labaqalayo ngolimi olukhethile; bheka eyethu umhlahlandlela wezilimi zokuhlela Ukuze uthole usizo. Ngenhlanhla, i-Selenium iyindlela enobungane yokufunda: ikhodi oyibhalayo ikhawulelwe ekusebenzisaneni okuthile (vula leli khasi, chofoza leyo nkinobho, qinisekisa ukuthi lo mbhalo uyavela), okuyinto engatheni kakhulu kunokubhekana nohlelo lokusebenza olukhulu kusukela ekuqaleni.
I-Java iyindlela evame kakhulu emhlabeni we-Selenium, evame ukubhangqwa ne-JUnit noma i-TestNG njengohlaka lokuhlola. Uma uhamba ngendlela ye-Java, uzofuna ukufunda ukuthi ungabhala kanjani izivivinyo ze-JUnit ezilula, usebenzise izisho, futhi uhlele amakilasi akho okuhlola ngendlela enengqondo. Izifundo eziningi zamahhala zimboza kokubili izisekelo ze-Java kanye ne-Selenium ndawonye ngendlela egxile kwabaqalayo.
Uma ukhetha i-Python, ukusetha kusebenzisa i-pip kanye ne-virtual environments esikhundleni se-Maven, kodwa imiqondo ye-WebDriver ihlala ifana. Umsebenzi usabandakanya ukufaka izibopho zolimi, ukulanda umshayeli ofanele (njenge-chromedriver), nokubhala izivivinyo ezivula isiphequluli, zisebenzisane nezinto futhi zihlole imiphumela.
Ukusetha Indawo Yakho Ye-Selenium Ngokufanele
Isinyathelo sokuqala esiwusizo ukufaka izibopho zolimi lweSelenium zolimi olukhethile. Ku-Java lokhu kuvame ukusho ukwengeza ukuncika kwe-Selenium kuphrojekthi yakho, kuyilapho ku-Python ungafaka iphakheji ye-selenium usebenzisa i-pip. Noma ngabe yikuphi, lo mtapo wolwazi yiwona okunikeza ukufinyelela kumakilasi e-WebDriver kukhodi yakho.
Okulandelayo udinga i-browser driver esebenzisekayo, njenge-chromedriver ye-Google Chrome, i-geckodriver ye-Firefox noma i-msedgedriver ye-Microsoft Edge. Ulanda inguqulo efanele kusayithi elisemthethweni, uyibeke kufolda eyaziwayo bese ufaka leyo folda ku-PATH yesistimu yakho noma ubhekisele ngokucacile endleleni ezivivinyweni zakho.
Ngasohlangothini lweJava, ukusebenzisa iMaven ukuphatha ukuncika kubhekwa njengomkhuba omuhle kakhulu kunokusebenzisa amafayela e-JAR ngesandla. UMaven ufunda i-pom.xml yakho, alande i-Selenium kanye neminye imitapo yolwazi ngokuzenzakalelayo, futhi agcine izinguqulo zawo zilawulwa, okwenza kube lula ukusetha kanye nokuthuthukiswa kwesikhathi esizayo.
Ama-IDE afana ne-Eclipse kanye ne-IntelliJ IDEA ahlangana kahle ne-Maven, ngakho-ke uma i-pom.xml yakho isilungisiwe, i-IDE izongenisa iphrojekthi futhi ixazulule zonke izinto ezidingekayo. Lokhu kuholela ekusethweni okuhlanzekile nokungaguquguquki kunokukopisha ama-JAR kufolda ye-lib futhi unethemba lokuthi uyakhumbula ukuthi avelaphi.
Nakuba ezinye izifundo zibheka iMaven njengesihloko "esithuthukisiwe", onjiniyela abaningi abanolwazi batusa ukuqala ngeMaven ngokushesha. Uma udala iphrojekthi elula yeJava kuqala bese kamuva uyiguqula ibe yiphrojekthi yeMaven, uzogcina wenza umsebenzi owengeziwe. Ukudala iphrojekthi yeMaven kusukela ngosuku lokuqala kusindisa amakhanda futhi kukulungiselele ukuhlanganiswa okuqhubekayo kamuva.
Amathuluzi afana ne-Parasoft Selenic nawo ahlangana ne-Maven, okwenza kube lula nakakhulu ukumisa amaphrojekthi e-Selenium nokuphatha ukuncika njengengxenye yesistimu yokuhlola enkulu. Ngokusekela nge-piggy ohlelweni lokwakha olujwayelekile, ungenza ngokuzenzakalelayo izinyathelo zokuhlanganisa, ukuhlola kanye nokufaka ngokwethembeka kakhudlwana.
Ukubhala Iskripthi Sakho Sokuqala Sokuzenzakalela Selenium
Uma indawo yakho isilungile, sekuyisikhathi sokubhala iskripthi sakho sokuqala seWebDriver, ngokuvamile esithi “Hello World” seSelenium: ukwenza usesho lwe-Google lube ngokuzenzakalelayo. Lo mbono ulula kodwa uthinta zonke izisekelo: ukuqala isiphequluli, ukuya ku-URL, ukuthola into ethile, ukusebenzisana nayo, ukuqinisekisa umphumela, bese uvala iseshini.
Ukugeleza okuvamile kubukeka kanje: ungenisa amaphakheji e-Selenium, ulungiselela indlela eya kumshayeli osebenzayo, uqalise i-WebDriver, uvule i-URL eqondiwe bese uthola ibhokisi lokusesha usebenzisa i-locator efana ne-By.name. Ube usuthumela okhiye kuleyo nto (isibonelo, ukuthayipha “isifundo se-Selenium”) bese uthumela ifomu.
Ngemva kokuthumela, uvame ukuhlola isihloko sekhasi noma esinye isici ukuqinisekisa ukuthi ufikile ekhasini lemiphumela. Ezibonelweni ezincane lokhu kungaba ukuhlolwa okulula okunemibandela, kodwa ezivivinyweni zokukhiqiza cishe uzosebenzisa uhlaka olufana ne-JUnit noma i-TestNG ukusingatha i-assert nokuqinisekisa i-logic ngendlela ehlelekile.
Ekugcineni ushayela u-driver.quit() ukuze uvale isiphequluli bese uqeda iseshini ye-WebDriver. Lesi sinyathelo sokuhlanza sibalulekile, ikakhulukazi lapho kwenziwa izivivinyo eziningi, ukuze kugwenywe izinqubo zesiphequluli se-zombie ezidla inkumbulo futhi zibangele ukuthi ama-run kamuva angasebenzi kahle.
Ngisho noma lesi skripthi sokuqala sincane, sikufundisa ukuthi amabhlogo okwakha e-Selenium ahambisana kanjani, okwenza ukugeleza kwakamuva, okuyinkimbinkimbi kube lula ukukuqonda. Ukusuka lapha unganwebeka ezimweni ezithakazelisayo njengokungena ngemvume, ukwengeza izinto enqoleni noma ukuhamba ngezinyathelo eziningi.
Izindawo Zokuthola Izinto: Indlela I-Selenium Ethola Ngayo Izinto Ekhasini
Ama-locator ayindlela otshela ngayo i-Selenium ukuthi iyiphi into ofuna ukusebenzisana nayo, futhi ukuyiqonda kahle kungenye yamakhono abaluleke kakhulu ongawathuthukisa. Uma ama-locator akho ebuthakathaka noma engazinzile, izivivinyo zakho zizophuka njalo noma nini lapho i-UI ishintsha kancane.
I-Selenium isekela amasu amaningana ayisisekelo okuthola indawo njenge-id, igama kanye ne-className, ashesha futhi kulula ukuwasebenzisa uma etholakala. Izibonelo zifaka phakathi i-By.id ("inkinobho yokungena"), i-By.name ("umsebenzisi") noma i-By.className ("btn-primary"). Lezi zivame ukuba ziqine kakhulu uma uhlelo lokusebenza lunikeza amanani ahlukile futhi azinzile.
Uma izimfanelo ezilula zinganele, ungathembela ezinkethweni ezinamandla kakhulu njengezikhethi ze-XPath kanye ne-CSS. I-XPath ikuvumela ukuthi uzulazule esihlahleni se-DOM futhi ufanise izakhi ngokusekelwe esakhiweni, izimfanelo kanye nokuqukethwe kombhalo, kuyilapho izikhethi ze-CSS zinikeza i-syntax emfushane efana naleyo esetshenziswa ngabathuthukisi be-front-end kumashidi esitayela.
Amaphethini avamile e-XPath afaka izinkulumo ezifana ne- //tag ukuthola isici esinesici esithile, noma i- //tag ukuthola izakhi ezinombhalo obonakalayo oqukethe amagama athile. Isibonelo, i- //input ikhomba okokufaka okunomazisi wokusesha, kanye ne- //a ikhomba isixhumanisi esifaka phakathi "Ngena ngemvume".
Amaphethini e-CSS adumile yi-tag#id yezinto ezine-id ethile (njenge-input#email), i-tag.class yezinto ezinekilasi elinikeziwe (njenge-button.btn-success), kanye ne-tag yezimfanelo ezingahleliwe (njenge-a). Lezi zikhethi zifushane futhi zisebenza kahle kuzo zonke iziphequluli zesimanje.
Njengomthetho wesithupha, khetha njalo indawo elula nezinzile kakhulu kuqala: ama-id uma eyingqayizivele futhi ethembekile, bese kuba amagama noma izigaba ze-semantic, bese kuba yilapho kuphela izinkulumo ze-XPath noma ze-CSS eziyinkimbinkimbi kakhulu. Lokhu kugcina izivivinyo zakho zingabi buthakathaka uma izakhiwo ze-HTML zishintsha.
Amasu Okuthola Indawo Yezinto Eziqinile
Ngesinye isikhathi uzohlangana namakhasi lapho ama-locator aqondile anganele khona, ikakhulukazi uma ubhekene nama-UI aguquguqukayo noma agcwele kakhulu. Yilapho udinga khona amasu ahlakaniphile ukuze ugcine izivivinyo zakho zizinzile lapho ubhekene nezinguquko ezivamile ze-front-end.
Iphutha elilodwa elivamile lincike ezinhlotsheni ze-XPath ezibonisa lonke uhlu lwe-DOM, njenge-/html/body/div/div/div/span/section/div/h2/p. Noma yiluphi ushintsho oluncane lokwakheka lungaphula isitholi esinjalo, okuphoqa ukuthi ubuyekeze izivivinyo ezingenakubalwa ukuze kube nokulungiswa okuncane okubonakalayo.
Indlela eqhubekayo ukusebenzisa ama-XPath locator ahlobene aveza izimfanelo noma umbhalo obalulekile, isibonelo //p. Nakuba lokhu kungaphuka uma ikhasi lishintsha kakhulu, kubekezelela kakhulu ukulungiswa kabusha kwe-UI okuvamile.
Onjiniyela abaningi abasebenza ngokuzenzakalelayo basebenzisa kakhulu amathuluzi okuthuthukisa isiphequluli ngenkathi belungisa kahle ama-locator, bavame ukuzama ngokusebenzisana ne-XPath ne-CSS baze bathole ukuvezwa okuzinzile. Cishe uzochitha isikhathi esiningi kukhonsoli uqinisekisa imibono yakho yendawo ngaphambi kokuyibeka kukhodi.
Kukhona futhi ama-plugin esiphequluli, njenge-TruePath ye-Chrome ne-Firefox, akhiqiza izinkulumo ze-XPath eziphakanyisiwe zento echofoziwe. Lawa mathuluzi awaphelele, kodwa angakunikeza indawo enhle yokuqala ongayilula noma uyilungise ukuze ivumelane nezidingo zakho zokuzinza.
Ukutshala imali ekutholeni izindawo eziqinile kungase kuzwakale njengomsebenzi owengeziwe kusengaphambili, kodwa kuyazuzisa kakhulu uma usuqhubeka nokuhlola okuningi noma amakhulu kuhlelo lokusebenza olushintshayo. Ukwehluleka okumbalwa okuhlobene ne-locator kusho isikhathi esincane sokujaha ama-alamu angamanga kanye nesikhathi esiningi sokubamba ukuhlehla kwangempela.
Ukulinda Nokuvumelanisa: Ukuphatha Amakhasi Ahamba Kancane Noma Aguquguqukayo
Omunye umthombo ovamile wokuhlolwa okungacacile kwabaqalayo isikhathi: iskripthi sakho sizama ukuchofoza noma ukufunda okuthile ngaphambi kokuba ikhasi liqede ukulayisha noma ngaphambi kokuba isicelo se-AJAX sibuyekeze i-UI. Lokhu kuholela emaphutheni anjengokuthi “into ayitholakalanga” yize into ivele ngemuva kwesikhashana esweni lomuntu.
I-Selenium inikeza amasu ahlukene okulinda ukuze uvumelanise izivivinyo zakho nohlelo lokusebenza: ukulinda okungacacile kanye nokulinda okucacile. Ukulinda okungacacile kutshela i-WebDriver ukuthi iqhubeke izama ukuthola into kuze kube yisikhathi esithile ngaphambi kokwenza okuhlukile, futhi lo mthetho usebenza emhlabeni wonke kuzo zonke izingcingo ze-findElement ezilandelayo.
Ngakolunye uhlangothi, ukulinda okusobala kuhlobene nezimo ezithile zezinto ezithile, njengokulinda kuze kube yilapho into ibonakala, ichofozeka noma ikhona ku-DOM. Lokhu kuvame ukusetshenziswa ngeWebDriverWait kuhlanganiswe nezimo ezilindelekile, futhi kubhekwa njengomkhuba omuhle kakhulu wokuxhumana okuyinkimbinkimbi noma okuguquguqukayo.
Kumasayithi athembele kakhulu ku-AJAX kanye nemitapo yolwazi efana ne-jQuery, akwanele ukulinda isici ngaso sonke isikhathi; ngezinye izikhathi udinga ukulinda kuze kube yilapho zonke izicelo ezikhona ze-asynchronous seziphelile. Kulezo zimo, ungasebenzisa iziqeshana ezincane zeJavaScript ngeWebDriver ukuhlola isimo se-jQuery (isibonelo, ukuqinisekisa ukuthi i-jQuery.active ingu-zero) ngaphambi kokuqhubeka.
Le ndlela empeleni isebenzisa "ukulinda ngokuhlakanipha" izingcingo ze-AJAX, ivimbela ukuhlolwa ukuthi kungasheshi phambili ngenkathi isiphequluli sisakhuluma ne-backend. Ezinye izifundo zifihla lesi sihloko ngokujulile, kodwa ziwusizo kakhulu uma usuqala ukuhlola izinhlelo zokusebenza zangempela ngokuziphatha okuningi okuguquguqukayo.
Amasu amahle okulinda, ahlanganiswe nezindawo zokuthola ezicatshangelwe kahle, enza umsebenzi omkhulu ekwenzeni ukuhlolwa kwakho kwe-Selenium kuzinzile, kusheshe futhi kuthembeke esikhundleni sokuba kube nokungapheleli nokukhungathekisayo. Ziyasiza futhi lapho kubhekene nezaziso, ama-pop-up nezinye izinto ezisebenzisanayo ezingase zivele kuphela ngemva kokuthi imisebenzi ethile ye-async iqediwe.
Imodeli Yezinto Zekhasi: Ukuhlola Ukwakha Njengochwepheshe
Njengoba uhlu lwakho lokuhlola lukhula, ukufaka yonke i-logic ngqo ezindleleni zokuhlola kuba nzima futhi kube nzima ukuyinakekela ngokushesha. I-Page Object Model (POM) iyiphethini yokuklama exazulula lokhu ngokuhlela ikhodi yakho yokuzenzakalela emakhasini noma ekubukweni kohlelo lwakho lokusebenza.
Ku-POM udala ikilasi elilodwa lekhasi ngalinye (noma ngezinye izikhathi ingxenye engasetshenziswa kabusha) yohlelo lwakho lokusebenza lwewebhu. Lelo klasi lihlanganisa kokubili izindawo zokuthola izinto kulelo khasi kanye nezenzo umsebenzisi angenza lapho, njengokungena ngemvume, ukusesha izinto noma ukwengeza umkhiqizo enqoleni.
Isibonelo, ikilasi le-LoginPage lingase libe ne-private By locators yenkambu yegama lomsebenzisi, inkambu yephasiwedi kanye nenkinobho yokuthumela, kanye nendlela efana ne-login (umsebenzisi we-String, iphasiwedi ye-String) egcwalisa ifomu bese ilithumela. Ikhodi yakho yokuhlola izobe isibiza ngokuthi i-loginPage.login ("alice") esikhundleni sokuthola amasimu ngesandla bese uchofoza izinkinobho njalo.
Lokhu kuhlukaniswa kunezinzuzo eziningana: uma indawo yenkinobho yokungena ishintsha, uyibuyekeza kuphela ekilasini le-LoginPage, hhayi kuzo zonke izivivinyo ezenza ukungena ngemvume. Izenzo ziphinde zisetshenziswe, izivivinyo ziyafundeka kalula, futhi imithwalo yemfanelo ichazwa kangcono: izivivinyo zichaza okufanele kwenziwe, izinto ezisekhasini ziyazi ukuthi zikwenze kanjani.
Izinhlaka ezifana ne-Page Factory zakhela phezu kwalomqondo, zengeza ushukela we-syntactic kanye nezinsiza zokuqalisa izakhi kanye nokunciphisa i-boilerplate. Izixazululo eziningi ze-Selenium ezithuthukisiwe, okuhlanganisa namathuluzi afana ne-Parasoft Selenic, zamukela i-POM ngoba iholela kuma-suites ahlanzekile, anakekelwa kangcono afinyelela kumakhulu noma izinkulungwane zezivivinyo.
Ukweqa i-POM kungase kubonakale kulungile uma unezikripthi ezimbalwa kuphela, kodwa uma i-regression suite yakho ikhula, ukungayisebenzisi cishe kuzoholela ekuphindaphindweni, ikhodi ebuthakathaka kanye nokuguqulwa kabusha okubuhlungu kamuva. Ukutshala imali ku-POM kusenesikhathi kungenye yezinqumo ezihlakaniphile kakhulu ongayenza ohambweni lwakho lwe-Selenium.
Ukubhekana Noshintsho: Ukugcina Ukuzenzakalela kwe-Selenium Kuzinzile
Iqiniso elilodwa elingenakugwenywa lokwenza ngokuzenzakalela kwe-web UI ushintsho: izixhumi-xhumano ziyaguquka, izakhi ziyahamba, izimfanelo ziyashintshwa futhi ukugeleza kuyashintshwa. Lonke ushintsho olusekugcineni kwangaphambili luyithuba lokuthi izivivinyo ezenzakalelayo ziqale ukwehluleka, hhayi ngoba ukusebenza kuphukile, kodwa ngoba izikripthi zakho azisahambisani ne-UI entsha.
Njengonjiniyela wokuhlola okuzenzakalelayo usheshe ujwayele ukwehluleka kokuhlola: ingabe inkinga ekuhlolweni, endaweni ezungezile, isendleleni yokulungisa i-UI engenangozi, noma ingabe iwukuhlehla kwangempela? Ukugijima okuningi okuhlulekile kuzoba yizixwayiso ezingamanga ezibangelwa izinkinga zendawo, izinkinga zesikhathi noma izibikezelo zedatha yokuhlola.
Imikhuba emihle yokuthola indawo, njengoba kuxoxwe ngayo ngaphambili, ingenye yezindlela ezinhle kakhulu zokuzivikela ekuhlolweni kwe-brittle. Ukugwema ama-XPath aphelele, ukusebenzisa izimfanelo ezizinzile nokusebenzisa i-POM ukuze kufakwe ama-locator ndawonye konke kusiza ekunciphiseni ukwehluleka lapho i-UI ishintsha.
Amasu okulinda aqinile ayisikhali sesibili esikhulu: uma izivivinyo zakho zizwela umehluko omncane wesikhathi noma ukuphazamiseka kwenethiwekhi, uzohlala uxosha ukwehluleka ngezikhathi ezithile. Ukulinda okuhlakaniphile okubonisa i-AJAX kanye nokuhumusha okunamandla kunganciphisa kakhulu lolu hlobo lomsindo.
Ngisho nangemikhuba emihle kakhulu, nokho, ukulungiswa okuthile akunakugwenywa; izinhlelo zokusebenza eziyinkimbinkimbi ziyashintsha ngezindlela okungekho muntu ongazisebenzisa ngokugcwele. Ukwamukela ukuthi ukulungiswa kuyingxenye yomsebenzi, kanye nesikhathi sokuhlela isabelomali sawo, kuyinto engokoqobo kunokuzenza sengathi i-suite yakho izohlala izinzile phakade ngaphandle kokuvuselelwa.
Amathuluzi athuthukile njengeParasoft Selenic azama ukunciphisa lobu buhlungu ngokusebenzisa i-AI heuristics ukuthola ukuthi ama-locator noma ama-waiting adinga ukulungiswa nini. Bangakwazi ukulungisa ngokuzenzakalelayo izivivinyo ngokushesha ngesikhathi sokwenziwa, bathuthukise amasu okuthola indawo, balungise izimo zokulinda, bese bekukhombisa ukuthi yini elungisiwe ukuze ukwazi ukufaka lezo zinguquko emuva ku-codebase yakho.
Ukukhulisa i-Selenium nge-Parasoft Selenic
I-Parasoft Selenic iyisibonelo sesisombululo esakhelwe ukuthuthukisa nokwandisa amakhono e-Selenium aluhlaza esikhundleni sokuwashintsha. Kuwusizo kakhulu uma ufuna ukwenza izivivinyo zakho zeWebDriver ezikhona ziqine kakhudlwana, zigcinwe kahle futhi zisebenze kahle ngezinga elithile.
Esinye sezici zayo ezivelele yi-Smart Recorder, esiza kokubili abaqalayo kanye nabahloli abanolwazi ukudala izivivinyo ze-Selenium ngokubhala ikhodi okuncane ngesandla. Iqopha ukusebenzisana ku-UI yewebhu futhi ikuhlele ngokwezimiso ze-Page Object Model, inciphise ukuphindaphindwa futhi yenze kube lula ukuphatha izikripthi ezivelayo.
Ngesikhathi sokwenziwa, i-Selenic isebenzisa i-heuristics eqhutshwa yi-AI ukuthola ukuthi kungani ukuhlolwa kwehlulekile, ihlukanisa phakathi kokuhlehla kwesicelo sangempela nezinkinga ezibangelwa yizindawo ezibuthakathaka noma isikhathi. Uma ithola ukungazinzi, ingalungisa izindawo zokubona bese ilinda ngokushesha, iziphulukise ngokwayo izivivinyo zakho ngenkathi ziqhubeka.
Elinye ikhono elinamandla ukuhlaziywa komthelela wokuhlola kanye nokukhetha kokuhlola okuhlakaniphile. Esikhundleni sokusebenzisa izinkulungwane zezivivinyo ze-Selenium kuzo zonke izakhiwo, i-Selenic ingakhetha kuphela isethi edingekayo ukuqinisekisa izinguquko zekhodi kusukela ekuqalisweni kokugcina, inciphise kakhulu isikhathi sokwenziwa futhi inikeze impendulo esheshayo ye-CI/CD.
Ngenxa yokuthi ihlangana kahle neMaven, iSelenic ingena kumasethingi ephrojekthi yeJava ajwayelekile ngaphandle kokudinga ukulungiswa kabusha okukhulu. Iba yingxenye yomsebenzi wakho wokwakha nokuhlola ojwayelekile, ihambisana ne-core Selenium stack ngokuhlakanipha okwengeziwe kanye nokwenza izinto ngokuzenzakalela okuzungezile.
Ukuhlolwa Kwesiphequluli Esiphambene Nokungenamakhanda Nge-Selenium
Abasebenzisi bangempela abaphequluli bonke ngesiphequluli esifanayo, ngakho-ke ngesinye isikhathi uzofuna ukuqinisekisa uhlelo lwakho lokusebenza ku-Chrome, Firefox, Edge kanye ne-Safari. I-Selenium WebDriver yenza lokhu kube lula ngokunikeza ukusetshenziswa komshayeli kusiphequluli ngasinye esikhulu.
Ukuze wenze isivivinyo kusiphequluli esihlukile, uvame ukushintsha i-WebDriver oyisungulayo (isibonelo, i-ChromeDriver() entsha, i-FirefoxDriver() entsha noma i-EdgeDriver() entsha) futhi uqinisekise ukuthi ulande futhi walungisa umshayeli ofanele. I-logic evamile yokuhlola ivame ukuhlala ingashintshi uma ama-locator akho kanye nokugeleza kwawo kungaqondile kusiphequluli.
Kuma-suite amakhulu, i-Selenium Grid ikuvumela ukuthi wenze izivivinyo kuzo zonke iziphequluli eziningi kanye nemishini ngesikhathi esifanayo. Uchaza ukuthi ama-node akho esiphequluli ahlukene ahlala kuphi, futhi igridi ithumela ukuhlolwa ngakunye endaweni efanele, okubalulekile uma udinga ukumbozwa okuphelele ngaphandle kokuthatha amahora amaningi.
Ukuhlola okungenamakhanda kungenye inketho ewusizo, lapho isiphequluli sisebenza ngaphandle kwefasitela le-UI elibonakalayo. Amamodi angenamakhanda e-Chrome ne-Firefox akuvumela ukuthi wenze ukuhlolwa kwe-Selenium ezindaweni ezingenazo izibonisi (njengamaseva noma ama-ejenti e-CI), usebenzisa izinsiza ezimbalwa futhi ngokuvamile usebenza ngokushesha.
Ukuhlanganisa ukwesekwa kwesiphequluli esibanzi, ukusebenza okungenamakhanda kanye nokusethwa kwegridi eqinile kukunika ukuguquguquka okukhulu endleleni osebenzisa ngayo futhi kuphi ama-Selenium suites akho, kusukela emishinini yendawo kuya kwingqalasizinda esekelwe efwini. Lokhu kuguquguquka kuyingxenye enkulu yokuthi kungani i-Selenium isalokhu iyisisombululo esisetshenziswa kakhulu sokwenza izinto ngokuzenzakalela kwewebhu.
Ukuhlanganisa Konke Kuphrojekthi Enobungane Nabaqalayo
Indlela enhle yokuhlanganisa konke okufundile ukwakha iphrojekthi encane yokwenza izinto ngokuzenzakalela, kusukela ekuqaleni kuze kube sekupheleni, usebenzisa isitolo sewebhu sedemo noma isayithi elifanayo. Lokhu kukuphoqa ukuthi ubhekane nokugeleza okungokoqobo, idatha kanye nokuziphatha kwe-UI kunezibonelo zamathoyizi ezihlukile.
Esinye isenzo esivamile ukwenza uhambo lokuthenga oluphelele lube ngokuzenzakalelayo: ukungena ngemvume, ukufuna umkhiqizo, ukuwufaka enqoleni bese uqedela ukukhokha. Uqala ngokuklama izinto zekhasi zekhasi lokungena ngemvume, ikhasi lokusesha/lemiphumela, ikhasi lemininingwane yomkhiqizo kanye nekhasi lenqola/lokukhokha.
Ngaphakathi kwalezi zinto zekhasi uchaza izitholi kanye nezenzo zomsebenzisi zesinyathelo ngasinye, kusukela ekufakeni iziqinisekiso kuya ekuchofozeni okuthi “Engeza enqoleni”. Izindlela zakho zokuhlola bese zifundeka cishe njengolimi lwemvelo: loginPage.login(), searchPage.searchFor(“laptop”), productPage.addToCart(), cartPage.checkout().
Kuyo yonke imfudlana usebenzisa ukulinda okucacile noma kuphi lapho izakhi zilayisha khona ngokungahambisani, njengokulinda uhlu lwemiphumela ukuthi luvele noma izibuyekezo ze-AJAX ziqedwe ngemva kokwengeza into enqoleni. Leli yithuba elihle lokuzijwayeza amakhono akho okuvumelanisa esimweni esibaluleke ngempela.
Ekupheleni kokuhlolwa uqinisekisa izimo zebhizinisi ezibalulekile ngezisho: umkhiqizo ofanele usenqoleni, amanani ayanda kahle, futhi umyalezo wokuqinisekisa uhambisana nokulindelekile. Lokhu kuhlola kuguqula iskripthi sesiphequluli esilula sibe ukuhlolwa okuzenzakalelayo okunenjongo okuvikela ukusebenza kwangempela.
Ngesikhathi uqeda iphrojekthi encane enjalo, uzobe usuthinte iningi lemiqondo eyinhloko yeSelenium: ukusethwa kweWebDriver, ama-locator, ukulinda, i-POM, izisho, ukwenziwa kwesiphequluli esiphambene kanye namasu okulungisa ayisisekelo. Ukusuka lapho kuyisinyathelo esingokwemvelo ukuhlanganisa izivivinyo zakho namathuluzi e-CI nokwandisa uhlaka lwakho ngamaphethini aqhutshwa idatha noma aqhutshwa amagama angukhiye.
Ngemva kokuhamba ngemvelaphi yeSelenium, izingxenye zayo eziyinhloko, ukusethwa kwemvelo, ukubhala iWebDriver, amasu okuthola kanye nokulinda, iPage Object Model, ukuphathwa koshintsho, ukusebenza kwesiphequluli esiphambene kanye namathuluzi afana neParasoft Selenic, manje usunemephu yengqondo ephelele yokuthi kusho ukuthini ngempela ukwakha ukuzenzekela kweSelenium okunobungani nabaqalayo kodwa okungochwepheshe. Ngokuzijwayeza okuqhubekayo kanye namaphrojekthi aqhubekayo, leyo mibono ishintsha kusuka kumbono iye kumkhuba, futhi uzozithola ngokushesha uklama izivivinyo ezihlanzekile, uxazulula izinkinga ngokushesha futhi usebenzisa iSelenium njengomngani onamandla kunokuba ulwe nayo kuyo yonke indlela.
