- Selenium inopa hurongwa hwebrowser husingazivikanwe nevashandisi vewebhu hwekugadzirisa nekugadzirisa mapurogiramu ewebhu uchishandisa WebDriver, IDE neGrid.
- Pfungwa dzakasimba muHTML, CSS, programming, locators uye waits dzakakosha pakunyora bvunzo dzeSelenium dzakavimbika uye dzinogoneka.
- Magadzirirwo ekugadzira akadai sePage Object Model uye robust locator pamwe nemazano ekumirira anoderedza zvakanyanya kupwanyika uye anorerutsa kugadziriswa kwenguva refu.
- Zvishandiso zvakaita seMaven, Selenium Grid naParasoft Selenic zvinobatsira kuwedzera maSelenium suites nekukurumidza, kusarudza kwakangwara uye kugona kuzvirapa.
Kana uchangotanga nekushandisa web test automation uye uchiramba uchinzwa nezveSelenium kwese kwese, gwara iri ndere rako. Tichatsanangura kuti Selenium chii, kuti nei ichifarirwa, kuti zvinhu zvayo zvikuru zvinobatana sei, uye kuti ungabva pazero kusvika pakumhanya bvunzo dzakanaka dzinobatsira vanotanga, nhanho nenhanho, usingasiye pfungwa dzinokosha mumapurojekiti chaiwo.
Munzira muchaona kuti Selenium WebDriver, Selenium IDE neSelenium Grid zvinoshanda sei pamwe chete, maitiro ekuisa nekugadzirisa nharaunda yenyu, uye maitiro ekudzivirira misungo yekare inoita kuti ma test suites evanotanga aite crash uye arwadze kuchengetedza. Tichataurawo nezvemaitiro emazuva ano akanakisa akadai sePage Object Model, smart locators, waits for AJAX, cross-browser execution uye kuti maturusi akadai seMaven kana mhinduro dzepamberi dzakadai seParasoft Selenic anogona sei kuita kuti hupenyu hwako huve nyore.
Chii chinonzi Selenium uye nei zvikwata zvakawanda zvichichishandisa?
Selenium ipuratifomu yakavhurika yakagadzirirwa kuita kuti mawebhusaiti ashande otomatiki uye asimbiswe mumabhurawuza akasiyana siyana uye masisitimu ekushanda. Kusiyana nezvishandiso zvakawanda zvekutengeserana, inotsigira mitauro yakawanda yekuronga mapurogiramu (Java, Python, C#, JavaScript, nezvimwewo) uye inobatanidzwa zvakanaka nekuyedza kuripo uye CI/CD ecosystems, izvo zvinoita kuti ive inokwezva zvikuru kumapoka ehukuru hwese.
Chinonyanya kukosha pachirongwa ichi iSelenium WebDriver, iyo W3C‑standardized API inokutendera kuti ushandise mabrowser chaiwo uchishandisa programmatically. Browser yega yega inoburitsa dhiraivha yakatsaurirwa (senge ChromeDriver yeChrome kana GeckoDriver yeFirefox) iyo inogamuchira mirairo kubva kukodhi yako yekuyedza uye inoishandura kuita zviito zvebrowser zvemuno zvakaita sekudzvanya, kunyora, kufamba kana kuverenga ruzivo rweDOM.
Selenium yakawana mukurumbira kwete chete nekuti haina mari, asiwo nekuda kwenharaunda yakasimba yakaipoteredza. Zvinyorwa, zvidzidzo, mapurojekiti emuenzaniso uye mibvunzo nemhinduro zviri kwese kwese, saka kana ukangoerekana wava kunetseka, hazviwanzoitiki kwenguva refu. Kune vanotanga, izvi zvinoreva kuti hausi kudzidza uri wega: unogona kuvimba nemakore eruzivo rwakagovaniswa.
Chimwe chikonzero chikuru chinoita kuti makambani avimbe neSelenium ndiko kuchinjika. Inokubvumira kugadzira yako yega test automation architecture, kubatanidza maraibhurari ekusimbisa akadai seJUnit kana TestNG, kushandisa maturusi ekuvaka akadai seMaven kana Gradle, uye kubatanidza nematurusi eCI anosanganisira Jenkins, GitHub Actions kana GitLab CI. Hauna kuvharirwa mu ecosystem chaiyo yemutengesi.
Pamusoro pekuchinja uku, Selenium inogonesa maitiro ekuyedza akadai sekuita zvinoenderana, ma suite ekugadzirisa akasimba uye cross-browser validation, izvo zvakakosha kumaapplication emazuva ano ewebhu. Unogona kumhanyisa zviuru zvebvunzo husiku hwese pama nodes akawanda uchishandisa Selenium Grid, kupfupisa mhinduro dzemhinduro uye kuvandudza chivimbo chekuburitsa ruzivo.
Kubva paJavaScriptTestRunner Kuenda kuZvikamu zveSelenium zveMazuva Ano
Nyaya yeSelenium yakatanga muna 2004, apo Jason Huggins akagadzira chishandiso chinonzi JavaScriptTestRunner chekugadzirisa mashandiro ebrowser pamawebhusaiti. Panguva iyoyo aishanda kukambani yesoftware yeThoughtWorks, uye chishandiso ichi chakatanga kushandiswa mukati kuti kukurumidzise kuyedza uye kuderedza mari panguva yekugadzira.
Muna 2007 Huggins akabatana neGoogle uye akaramba achivandudza nekuwedzera hurongwa hwacho, uhwo hwakazopedzisira hwava pachena pasi peApache 2.0 license. Nekufamba kwenguva, chirongwa ichi chakashanduka, chikabatanidzwa neWebDriver API uye chakabatana nezita rekuti Selenium WebDriver ratichiri kushandisa nanhasi kune stack yemazuva ano.
Shanduro yeSelenium iripo yakavakirwa pakudyidzana kweHTML neJavaScript, zvichiita kuti vagadziri vanyore, vadzokorore uye vanyore zviito zvebrowser nenzira yega yega. Pane kudzokorora matanho ekuyedza akafanana nemaoko kakawanda, unogona kunyora maitiro acho kamwe chete woaita kakawanda sezvinodiwa, kazhinji sechikamu chepombi.
Kuti izvi zviitike, Selenium inokamurwa zvine musoro kuita zvikamu zvakakosha zvakasiyana, chimwe nechimwe chakanangana nechikamu chaicho chenyaya yekuedza otomatiki. Kunzwisisa zvikamu izvi kwakakosha kana uchida kushandisa Selenium zvinobudirira pane kuiona sebhokisi dema.
Mamodule makuru auchasangana nawo ndeeSelenium Core, Selenium IDE, Selenium WebDriver uye Selenium Grid. Imwe neimwe ine basa rayo rakasiyana: kubva pakushanda kwakaderera, kurekodha uye kutamba, kusvika pakudzora browser yakavakirwa paAPI uye kuparadzirwa kukuru.
Zvishandiso zveCore Selenium: IDE, WebDriver uye Grid
Selenium Core ndiyo module yekutanga yaive nemabasa ekutanga, kusanganisira JavaScriptTestRunner uye older command API. Kunyange zvazvo usingawanzo taurirane neSelenium Core zvakananga nhasi, yakaisa hwaro hwezvimwe zvikamu zve ecosystem uye yakachinja marongerwo emirairo nezviito.
Selenium IDE ndiyo nzvimbo yekupinda iri nyore kune vanotanga, inopihwa sekuwedzera kwebrowser yeChrome neFirefox. Inokubvumira kunyora kutaurirana nebrowser (kudzvanya, kunyora, kufamba) wozozvidzokorora gare gare, izvo zvakanaka pakubata nekukurumidza mafambiro ari nyore pasina kunyora kodhi.
Zvisinei, Selenium IDE ine miganhu: bvunzo dzakarekodhwa dzinogona kupwanyika, ma locator anogona kutyoka nyore nyore, uye pfungwa dzakaoma dzakaoma kuchengetedza mu rekodhi yakachena - uye - playback workflow. Ndosaka chero chirongwa cheSelenium chakakomba kwenguva refu chichizopedzisira chatanga kushandisa bvunzo dzekodhi uchishandisa Selenium WebDriver uye mutauro wepurogiramu wakazara.
Selenium WebDriver ipuratifomu yakavakirwa paAPI inotaura nemadhiraivha chaiwo ebrowser. Inotsanangura nzira isina mutauro inokubvumira kudzora kufamba, kutaurirana nezvinhu zvepeji, kuita JavaScript uye kuwana ruzivo kubva kuDOM. Vatengesi vebrowser vanoisa madhiraivha einjini dzavo, uye Selenium inoshandisa madhiraivha aya pese pazvinogoneka.
Selenium Grid inowedzera WebDriver kuitira kuti ugone kuita bvunzo panguva imwe chete mumachina akawanda, mabrowser nemapuratifomu. Inotumira mirairo yako yekuedza kuma node akasiyana, zvichideredza zvakanyanya nguva yese yekuedza yema suites makuru uye ichigonesa kufukidza kwakasimba kwe cross-browser uye cross-platform pasina kushandisa zvese pabhokisi rimwe chete, uye pfungwa dzakadai se kushivirira zvikanganiso mukutsvaga kwakapararira inogona kuzivisa magadzirirwo eGrid yako.
Mashandiro anoita WebDriver, Drivers neBrowser Pamwe Chete
Kana uri mutsva zvachose mu stack, zvinobatsira kuona WebDriver se "remote control" uye browser driver yega yega se adapta inobatanidzirwa muTV model chaiyo. Kodhi yako yekuyedza inotumira mirairo kuburikidza neWebDriver, mutyairi anoishandura kuita zviito zvakanangana nebrowser, uye browser inopindura zvinoenderana nazvo.
Kupatsanurana uku kwakaitwa nemaune, nekuti kunosundira vatengesi vebrowser mutoro wekuita ruzivo rwekushandisa. Makambani eChrome, Firefox, Edge neSafari anotumira uye anochengetedza madhiraivha awo kuitira kuti vazive kutaura nemainjini avo, ukuwo Selenium ichinyanya kutarisisa pakupa API yakajairika, inotarisa mushandisi iyo iri pamusoro.
Kubva pamaonero ako semuedzi kana mainjiniya, unowanzo shanda neraibhurari inosunga mitauro, makirasi eWebDriver uye driver inogoneka. Chinobatanidza iraibhurari yemutengi yemutauro wako (semuenzaniso, Selenium Java kana Selenium Python), makirasi eWebDriver anokupa mukana wekubvisa zviito zvescript, uye driver executable inodzora browser binary.
Selenium framework inonamira zvikamu izvi zvese pamwe chete kuitira kuti ugone kuchinja pakati pemadhiraivha nemapuratifomu pasina shanduko huru dzemakodhi. Bvunzo imwecheteyo inoshanda paChrome paWindows inogona, nekuchinja kudiki kwemagadzirirwo, kushanda paFirefox paLinux kana Edge paMacOS, inova ndiyo pfungwa huru yekuchinja otomatiki kwebrowser.
Ziva kuti kugadzira Selenium hakusi "kudzvanya-kunotevera-kunotevera" sezvinoita mamwe maturusi ekutengeserana. Usati wanyora chero kodhi yekuyedza, unofanirwa kuisa mabhindi emitauro, kudhawunirodha browser driver, kuigadzirisa muprojekiti yako uye kuve nechokwadi chekuti inowanikwa panguva yekuyedza kwako.
Unyanzvi Hunokosha Usati Wapinda muSelenium Automation
Usati watanga bvunzo dzeWebDriver, zvakakosha kuti uve neruzivo rwekutanga rwemawebhusaiti akadai seHTML neCSS. Hamufanirwe kunge muri nyanzvi yekuona peji, asi hamufanirwe kutya kuona peji, kuongorora zvinhu, uye kunzwisisa kuti markup yacho inoenderana sei nezvamunoona mubrowser.
Kukwanisa kushanda nechivimbo nematurusi ekugadzira mabrowser kwakakoshawo. Uchapedza nguva yakawanda uchishandisa Elements kana Inspector tab kuti uwane ma nodes, utarise hunhu, uye uone kuti ma locator ako (IDs, CSS selectors, XPath expressions) anonongedzera kuzvinangwa zvakakodzera.
Panyaya yekunyora makodhi, uchada hunyanzvi hwekutanga hwekugadzira mapurogiramu mumutauro waunosarudza; ona yedu gwara remitauro yekuronga mapurogiramu rubatsiro. Nerombo rakanaka, Selenium inzira yakanaka yekudzidza: kodhi yaunonyora inongogumira pakutaurirana kwakanangana (vhura peji rino, tinya bhatani iroro, taura kuti rugwaro urwu rwunoonekwa), izvo zvisinganyanyi kuoma pane kugadzirisa application hombe kubva pakutanga.
Java isarudzo yakajairika munyika yeSelenium, inowanzo batanidzwa neJUnit kana TestNG senzira yekuyedza. Kana ukatevera nzira yeJava, uchada kudzidza kunyora bvunzo dzeJUnit dziri nyore, kushandisa zvirevo, uye kuronga makirasi ako ebvunzo zvine musoro. Zvidzidzo zvakawanda zvemahara zvinofukidza zvese zviri zviviri Java basics neSelenium pamwe chete nenzira yakatarisana nevanotanga.
Kana uchida Python, setup yacho inoshandisa pip nenzvimbo dzepakombiyuta pachinzvimbo cheMaven, asi pfungwa dzeWebDriver dzinoramba dzakafanana. Kufamba kwebasa kunosanganisira kuisa mabhindi emitauro, kudhawunirodha dhiraivha yakakodzera (senge chromedriver), uye kunyora bvunzo dzinovhura browser, dzinoshanda nezvinhu uye dzinoongorora mhinduro.
Kugadzirisa Nzvimbo Yako yeSelenium Zvakanaka
Danho rekutanga rinoshanda kuisa maSelenium language bindings emutauro waunosarudza. MuJava izvi zvinowanzoreva kuwedzera maSelenium dependencies kuprojekiti yako, ukuwo muPython waizoisa selenium package uchishandisa pip. Chero nzira, raibhurari iyi ndiyo inokupa mukana wekuwana makirasi eWebDriver mukodhi yako.
Tevere unoda browser driver inogoneka, senge chromedriver yeGoogle Chrome, geckodriver yeFirefox kana msedgedriver yeMicrosoft Edge. Unodhawunirodha vhezheni chaiyo kubva pawebhusaiti yepamutemo, woiisa mufolda inozivikanwa uye wobva wawedzera iyo folda kuPATH yesystem yako kana kuti wotaura zvakajeka nezvenzira yacho mubvunzo dzako.
Kune rumwe rutivi rweJava, kushandisa Maven kugadzirisa zvinoenderana kunoonekwa senzira yakanakisa pane kushandisa maJAR mafaira nemaoko. Maven anoverenga pom.xml yako, anodhawunirodha Selenium nemamwe maraibhurari otomatiki, uye anochengetedza shanduro dzavo dzichidzorwa, izvo zvinoita kuti zvigadziriso zvive nyore uye zvigadziriswe mune ramangwana.
MaIDE akaita seEclipse neIntelliJ IDEA anowirirana zvakanaka neMaven, saka kana pom.xml yako yagadziriswa, IDE ichapinza purojekiti yacho yogadzirisa zvese zvinodiwa. Izvi zvinotungamira kune gadziriro yakachena uye inogadziriswa zviri nani pane kukopa maJAR mufolda ye lib uye uchitarisira kuti uchayeuka kwaakabva.
Kunyangwe mamwe matiitorials achibata Maven senyaya "yepamusoro", mainjiniya mazhinji ane ruzivo anokurudzira kutanga neMaven ipapo ipapo. Kana ukatanga wagadzira purojekiti iri nyore yeJava wozoishandura kuita purojekiti yeMaven, unozopedzisira waita basa rakawedzerwa. Kugadzira purojekiti yeMaven kubva pazuva rekutanga kunochengetedza misoro uye kunokugadzirira kubatana nguva dzose.
Zvishandiso zvakaita seParasoft Selenic zvinobatanidzwawo neMaven, zvichiita kuti zvive nyore kugadzirisa mapurojekiti eSelenium uye kugadzirisa zvinoenderana nezvinodiwa nevamwe sechikamu chehurongwa hwakakura hwekuedza. Nekushandisa sisitimu yekuvaka yakajairika, unogona kuita otomatiki matanho ekuunganidza, kuyedza uye kutumira otomatiki zvakavimbika.
Kunyora Script Yako Yekutanga yeSelenium Automation
Kana nzvimbo yako yagadzirira, inguva yekunyora script yako yekutanga yeWebDriver, kazhinji kacho inonzi "Hello World" yeSelenium: kuita kuti kutsvaga paGoogle kuitike otomatiki. Pfungwa yacho iri nyore asi inobata zvese zvakakosha: kutanga browser, kuenda kuURL, kutsvaga chinhu, kushandisa nacho, kusimbisa mhedzisiro, wobva wavhara chikamu chacho.
Maitiro ese anoita seizvi: unopinza mapakeji eSelenium, unogadzirisa nzira yekuenda kudriver inogoneka, unoisa WebDriver pakombiyuta, unovhura URL yaunoda wobva wawana bhokisi rekutsvaga uchishandisa locator yakaita seBy.name. Wobva watumira makiyi kune chinhu ichocho (semuenzaniso, kunyora "Selenium tutorial") wobva waendesa fomu racho.
Mushure mekutumira, unowanzo tarisa musoro wepeji kana chimwe chinhu kuti usimbise kuti wasvika papeji remhedzisiro. Mumienzaniso midiki iyi inogona kunge iri cheki iri nyore, asi mumiedzo yekugadzira iwe unoshandisa framework yakaita seJUnit kana TestNG kubata assert nekusimbisa logic nenzira yakarongeka.
Pakupedzisira unofonera driver.quit() kuti uvhare browser uye upedze WebDriver session. Danho iri rekuchenesa rakakosha, kunyanya kana uchiita bvunzo dzakawanda, kudzivirira maitiro ebrowser ye zombie achidya ndangariro uye zvichiita kuti ma run aite zvisina kunaka.
Kunyangwe chinyorwa chekutanga ichi chiri chidiki, chinokudzidzisa kuti mabhuroko ekutanga eSelenium anowirirana sei, izvo zvinoita kuti kuyerera kwakaomarara kunzwisiswe gare gare. Kubva pano unogona kuwedzera kune zvimwe zvinhu zvinonakidza zvakaita sekupinda muakaundi, kuwedzera zvinhu mungoro kana kufamba nemafomu ane matanho akawanda.
Nzvimbo: Mawaniro Anoita Selenium Zvinhu Papeji
MaLocator ndiwo maitiro aunoudza Selenium kuti ndechipi chinhu chaunoda kushandisa, uye kuchiziva ndicho chimwe chehunyanzvi hwakakosha hwaunogona kuwana. Kana nzvimbo dzako dzisina kusimba kana kuti dzisina kugadzikana, bvunzo dzako dzicharamba dzichityoka pese paichichinja UI zvishoma.
Selenium inotsigira nzira dzakasiyana siyana dzekutsvaga ruzivo dzakadai se id, zita uye className, idzo dzinokurumidza uye dziri nyore kushandisa kana dziripo. Mienzaniso inosanganisira By.id(“login-button”), By.name(“user”) kana By.className(“btn-primary”). Idzi dzinowanzova dzakasimba kana application ichipa mavalues akasiyana uye akagadzikana.
Kana hunhu huri nyore husina kukwana, unogona kuvimba nesarudzo dzakasimba dzakadai seXPath neCSS selectors. XPath inokubvumira kufamba nemuti weDOM uye kuenzanisa zvinhu zvichibva pachimiro, hunhu uye zviri mukati merugwaro, ukuwo vasarudzi veCSS vachipa maumbirwo mapfupi akafanana neanoshandiswa nevagadziri vema front-end muma stylesheets.
Maitiro akajairika eXPath anosanganisira mazwi akadai se //tag yekutsvaga chinhu chine hunhu hwakati, kana //tag yekutsvaga zvinhu zvine rugwaro runoonekwa rune mazwi chaiwo. Semuenzaniso, //input inonongedzera kune input ine id yekutsvaga, uye //a inonanga chinongedzo chine "Log in".
Mapatani eCSS anozivikanwa ndeekuti tag#id yezvinhu zvine id chaiyo (senge input#email), tag.class yezvinhu zvine kirasi yakapihwa (senge button.btn-success), uye tag yehunhu husina kurongeka (senge a). Sarudzo idzi dzakapfupika uye dzinoshanda zvakanaka mumabhurawuza emazuva ano.
Semutemo, gara uchisarudza nzvimbo iri nyore uye yakagadzikana kutanga: ma ids kana akasiyana uye akavimbika, wozotevera mazita kana makirasi e semantic, uye wozobva wawedzera kuomarara kweXPath kana CSS expressions. Izvi zvinoita kuti bvunzo dzako dzisanyanya kusimba kana maumbirwo eHTML achichinja.
Maitiro Ekuwana Nzvimbo Inogara Zvine Zvinhu Zvakasimba
Pane imwe nguva uchasangana nemapeji asina kukwana kuwana ma locator akajeka, kunyanya kana uchibata ma UI ane simba kana kuti ane ma nested akawanda. Apa ndipo paunoda nzira dzakangwara dzekuchengetedza bvunzo dzako dzakagadzikana pasinei nekuchinja-chinja kwepamberi pebasa.
Imwe nhamo yekare ndeyekuvimba nekutaura kweXPath kwakazara kunoratidza hutongi hwese hweDOM, senge /html/body/div/div/div/span/section/div/h2/p. Chero shanduko diki yekurongeka inogona kukanganisa nzvimbo yakadaro, zvichikumanikidza kuti ugadzirise bvunzo dzakawanda kuti dzigadziriswe zvishoma.
Nzira yekuchengetedza zvinhu ndeyekushandisa maXPath locators anotsanangura hunhu kana rugwaro zvine musoro, semuenzaniso //p. Kunyange zvazvo izvi zvichiri kugona kuputsika kana peji rikachinja zvakanyanya, zvinoshivirira zvakanyanya kugadziriswa kweUI kwakajairika.
Mainjiniya mazhinji e-otomatiki anoshandisa zvakanyanya maturusi ekugadzira mabrowser uku vachigadzirisa ma locator, vachiwanzoedza XPath neCSS kusvika vawana nzira yakagadzikana. Ungangopedza nguva yakawanda uri mukombuta uchisimbisa mazano ako ekutsvaga ruzivo usati waaisa mukodhi.
Kunewo ma plugins ebrowser, akadai seTruePath yeChrome neFirefox, anogadzira ma XPath expressions anokurudzirwa echinhu chakadzvanywa. Zvishandiso izvi hazvina kukwana, asi zvinogona kukupa pokutangira pakanaka paunogona kurerutsa kana kugadzirisa kuti zvienderane nezvinodiwa zvako zvekugadzikana.
Kuisa mari mukutsvaga nzvimbo dzakasimba kunogona kuita sebasa guru pachine nguva, asi zvinobudirira zvikuru kana wave kuita bvunzo dzakawanda kana mazana epurogiramu iri kuchinja. Kukundikana kushoma kwekutsvaga zvinoreva kuti pane nguva shoma yekutsvaga maalarm enhema uye kuti pane nguva yakawanda yekuwana ma regression chaiwo.
Kumirira Uye Kubatanidza: Kubata Mapeji Anononoka Kana Anochinja
Chimwe chinhu chinowanzo shandiswa pakuedza kusina kunaka kune vanotanga inguva: chinyorwa chako chinoedza kudzvanya kana kuverenga chimwe chinhu peji risati rapedza kurodha kana chikumbiro cheAJAX chisati chagadzirisa UI. Izvi zvinotungamirira kuzvikanganiso zvakaita sekuti "chinhu hachina kuwanikwa" kunyangwe chinhu chacho chichizoonekwa pava paya kumeso emunhu.
Selenium inopa nzira dzakasiyana dzekumirira kuti bvunzo dzako dzienderane neapplication: kumirira kwakavanzika uye kumirira kwakajeka. Kumirira kusina kujeka kunoudza WebDriver kuti irambe ichiedza kutsvaga chinhu kwenguva yakatarwa isati yaita kuti pave nekusiyana, uye mutemo uyu unoshanda pasi rose kune ese ma call anotevera e findElement.
Kumirira kwakajeka, kune rumwe rutivi, kwakabatana nemamiriro chaiwo ezvinhu chaiwo, akadai sekumirira kusvika chinhu chave kuoneka, chinogona kudzvanywa kana kuvapo muDOM. Izvi zvinowanzoitwa kuburikidza neWebDriverWait pamwe chete nemamiriro ezvinhu anotarisirwa, uye zvinoonekwa senzira yakanakisisa yekudyidzana kwakaoma kana kunochinja-chinja.
Kune mawebhusaiti anovimba zvakanyanya neAJAX nemaraibhurari akaita sejQuery, hazvigari zvakakwana kumirira chinhu; dzimwe nguva unofanirwa kumirira kusvika zvikumbiro zvese zvisina kurongeka zvapera. Muzviitiko izvozvo, unogona kuita zvidimbu zvidiki zveJavaScript kuburikidza neWebDriver kuti utarise mamiriro ejQuery (semuenzaniso, kusimbisa kuti jQuery.active haina zero) usati waenderera mberi.
Maitiro aya anoshandisa "kumirira kwakangwara" mafoni eAJAX, zvichidzivirira bvunzo kuti isamhanye mberi uku browser ichiri kutaura nebackend. Mamwe matiitorials anoviga nyaya iyi zvakadzama, asi inobatsira zvikuru kana watanga kuyedza maapplication chaiwo ane maitiro akawanda anochinja-chinja.
Maitiro akanaka ekumirira, pamwe chete nevanoona zvinhu zvine musoro, zvinobatsira zvikuru pakuita kuti bvunzo dzako dzeSelenium dzigadzikane, dzikurumidze uye dzivimbike pane kuti dzisave dzakakanganisika uye dzinogumbura. Zvinobatsirawo pakubata nema alerts, pop-up nezvimwe zvinhu zvinodyidzana zvinogona kuoneka chete mushure mekunge mamwe mabasa e async apera.
Muenzaniso weZvinhu zvePeji: Kuedza Kugadzira Miedzo Senyanzvi
Sezvo bvunzo yako ichikura, kuisa pfungwa dzese zvakananga munzira dzekuyedza kunokurumidza kushata uye kuoma kuchengetedza. Iyo Page Object Model (POM) imhando yekugadzira inogadzirisa izvi nekuronga kodhi yako ye otomatiki yakatenderedza mapeji kana maonero eapp yako.
MuPOM unogadzira kirasi imwe chete yepeji rega rega (kana dzimwe nguva chikamu chinogona kushandiswazve) chewebhu app yako. Kirasi iyoyo inosanganisira nzvimbo dzinowanikwa zvinhu zviri papeji iyoyo pamwe nezviito zvinogona kuitwa nemushandisi ipapo, zvakaita sekupinda mukati, kutsvaga zvinhu kana kuwedzera chigadzirwa mungoro.
Semuenzaniso, kirasi yeLoginPage inogona kunge iine private By locators yemunda weusername, munda wepassword uye bhatani rekutumira, pamwe nenzira yakaita se login (String user, String password) inozadza fomu uye inoritumira. Kodhi yako yekuyedza yaizodaidza kuti loginPage.login ("alice") pachinzvimbo chekutsvaga minda nemaoko uye kudzvanya mabhatani nguva dzese.
Kupatsanurwa uku kune zvakanakira zvakawanda: kana nzvimbo yekuona bhatani rekupinda ikachinja, unoigadzirisa chete mukirasi yeLoginPage, kwete muyedzo yese inoita login. Zviito zvinogona kushandiswazve, bvunzo dzinova nyore kuverenga, uye mabasa anotsanangurwa zviri nani: bvunzo dzinotsanangura zvekuita, zvinhu zvepapeji zvinoziva maitiro ekuzviita.
Mafuremu akaita sePage Factory anovakira pamusoro pepfungwa iyi, achiwedzera shuga yakagadzirwa uye zvinhu zvinobatsira kutanga zvinhu uye kuderedza boilerplate. Mhinduro dzakawanda dzemhando yepamusoro dzeSelenium, kusanganisira maturusi akadai seParasoft Selenic, dzinoshandisa POM nekuti dzinoita kuti pave nemasuites akachena uye anogadziriswa anosvika mazana kana zviuru zvemiedzo.
Kusvetuka POM kunogona kuita sekunge kwakanaka kana uine ma script mashoma chete, asi kana regression suite yako yawedzera, kusaishandisa kuchaita kuti pave nekudzokororwa, kodhi isina kusimba uye kugadziriswazve kunorwadza gare gare. Kudyara mari muPOM nekukurumidza ndeimwe yesarudzo dzakangwara dzaunogona kuita murwendo rwako rweSelenium.
Kubata Nekuchinja: Kuchengetedza Selenium Automation Yakagadzikana
Chimwe chinhu chisingadzivisike chekushandisa web UI otomatiki kuchinja: ma interface anoshanduka, zvinhu zvinofamba, hunhu hunotumidzwa zita idzva uye ma flow anogadziridzwa patsva. Kuchinja kwese kunoitika pamberi pechishandiso mukana wekuti bvunzo dzinozviitikira dzoga dzitange kukundikana, kwete nekuti mashandiro acho akanganiswa, asi nekuti zvinyorwa zvako hazvichaenderane neUI itsva.
Semuinjiniya wekuedza otomatiki, unokurumidza kujaira kukundikana kwe triaging: dambudziko riri mu test, munharaunda, riri mu innocuous UI tweak, kana kuti i regression chaiyo here? Kukundikana kukuru kwekushandisa kuchaita kuti zvive zviziviso zvenhema zvinokonzerwa nematambudziko ekutsvaga, matambudziko enguva kana fungidziro dzedata rekuyedza.
Maitiro akanaka ekutsvaga nzvimbo, sezvakambotaurwa, ndeimwe yenzira dzakanakisisa dzekudzivirira kubva pakubatwa netsaona. Kudzivisa maXPaths akazara, kushandisa stable attributes uye kushandisa POM kuisa ma locators pakati pevamwe zvese zvinobatsira kuderedza mhedzisiro kana UI ikachinja.
Nzira dzakasimba dzekumirira ndicho chombo chechipiri chikuru: kana bvunzo dzako dzichiona kusiyana kudiki kwenguva kana kuti matambudziko enetwork, ucharamba uchitevera kukundikana kunoitika nguva nenguva. Kumirira kwakangwara kunotsanangura AJAX uye dynamic rendering kunogona kuderedza zvakanyanya rudzi urwu rweruzha.
Kunyangwe nemaitiro akanaka, zvisinei, kugadzirisa kumwe hakudzivisiki; mashandisirwo akaomarara anochinja nenzira dzisinganyatsonzwikwi nemunhu anotsvaga nzvimbo. Kubvuma kuti kugadzirisa ibasa, uye kuronga nguva yekugadzirira, zviri nani pane kunyepedzera kuti imba yako icharamba yakasimba nekusingaperi pasina zvigadziriso.
Maturusi epamusoro-soro akaita seParasoft Selenic anoedza kuderedza marwadzo aya nekushandisa AI heuristics kuti aone kana nzvimbo dzinoda kugadziriswa. Vanogona kugadzirisa bvunzo otomatiki panguva yekushanda, kuvandudza nzira dzekutsvaga, kugadzirisa mamiriro ekumirira, uye vozokuratidza zvakagadziriswa kuitira kuti ugone kubatanidza shanduko idzodzo mucodebase yako.
Kuwedzera Selenium neParasoft Selenic
Parasoft Selenic muenzaniso wemhinduro yakagadzirwa kuti iwedzere kugona kweSelenium panzvimbo pekuitsiva. Zvinonyanya kubatsira kana uchida kuti bvunzo dzako dzeWebDriver dzive dzakasimba, dzinogadziriswa uye dzinoshanda zvakanaka.
Chimwe chezvinhu zvayo zvikuru iSmart Recorder, iyo inobatsira vese vanotanga nevane ruzivo rwekuyedza kugadzira bvunzo dzeSelenium vasina makodhi akawanda emaoko. Inonyora kutaurirana pawebhu UI uye inoronga zvinoenderana nePage Object Model, ichideredza kudzokororwa uye ichiita kuti zvinyorwa zvinobva zvive nyore kubata.
Munguva yekuita, Selenic inoshandisa heuristics inotungamirirwa neAI kuti ione kuti nei bvunzo yakundikana, ichisiyanisa pakati pekudzoka kwechokwadi kwekushandisa nematambudziko anokonzerwa nenzvimbo dzisina kusimba kana nguva. Kana ikaona kusagadzikana, inogona kugadzirisa nzvimbo yacho yomirira ichimhanya, ichizviporesa pachayo panguva iyo bvunzo dzako dzichiri kushanda.
Imwe hunyanzvi hwakasimba ndeyekuongorora mhedzisiro yebvunzo uye kusarudza bvunzo kwakangwara. Panzvimbo pekuita zviuru zvebvunzo dzeSelenium pane imwe neimwe yakagadzirwa, Selenic inogona kusarudza chete subset inodiwa kuti isimbise shanduko dzekodhi kubva payakaitwa kekupedzisira, ichideredza nguva yekuita uye ichipa mhinduro yeCI/CD nekukurumidza.
Nekuti inobatanidzwa zvakanaka neMaven, Selenic inokodzera mumapurojekiti akajairwa eJava pasina kuda kugadziriswa kwakasimba. Inova chikamu chemaitiro ako ekugadzira nekuedza, ichizadzisa core Selenium stack nehungwaru hwakawanda uye otomatiki yakaipoteredza.
Kuongororwa kweCross-Browser uye Kusina Misoro neSelenium
Vashandisi chaivo havasi vese vanoshandisa browser imwe chete, saka pane imwe nguva uchada kusimbisa application yako paChrome, Firefox, Edge uye pamwe neSafari zvakare. Selenium WebDriver inoita kuti izvi zvive nyore nekupa mashandisirwo emutyairi kune yega yega browser huru.
Kuti uite bvunzo pane imwe browser, unowanzo chinja WebDriver yaunoisa (semuenzaniso, ChromeDriver itsva(), FirefoxDriver itsva() kana EdgeDriver itsva()) uye unoita shuwa kuti une dhiraivha yebhinari yakakodzera yakadhawunirodhwa uye yakagadziriswa. Pfungwa dzekuedza dzinogona kuramba dzisina kuchinja kana nzvimbo dzako dzekutsvaga ruzivo nemafambiro adzo zvisiri zvebrowser.
Kune masutu makuru, Selenium Grid inokutendera kuti uite bvunzo mumabhurawuza akawanda nemichina panguva imwe chete. Unosarudza kuti ma browser nodes ako akasiyana anogara kupi, uye grid inoendesa bvunzo yega yega kunzvimbo yakakodzera, izvo zvakakosha kana uchida kufukidzwa kwakazara pasina kutora maawa.
Kuedza kusina musoro ndeimwe sarudzo inokosha, apo browser inoshanda isina hwindo reUI rinooneka. Mamodhi asina musoro eChrome neFirefox anokutendera kuti uite bvunzo dzeSelenium munzvimbo dzisina madhiraivha (senge maseva kana maCI agents), uchishandisa zviwanikwa zvishoma uye kazhinji unomhanya nekukurumidza.
Kubatanidza rutsigiro rwe cross-browser, headless execution uye solid grid setup kunokupa mukana wakawanda wekuti unomhanya sei uye kupi maSelenium suites ako, kubva kumachina emuno kusvika kuma infrastructures akavakirwa pa cloud. Kuchinjika uku chikamu chikuru chinoita kuti Selenium irambe iri mhinduro inoshandiswa pakugadzira otomatiki pawebhu.
Kuzviisa Pamwe Chete MuPurojekiti Yekubatsira Vanotanga
Nzira yakanaka yekubatanidza zvese zvawakadzidza ndeyekuvaka purojekiti diki, inoshanda otomatiki kubva pakutanga kusvika pakupedzisira uchishandisa chitoro chewebhu che demo kana saiti yakafanana. Izvi zvinokumanikidza kuti utarise mafambiro chaiwo, data uye maitiro eUI pane mienzaniso yematoyi akasiyana.
Chimwe chiitiko chinowanzoitwa ndechekuita kuti rwendo rwese rwekutenga ruite otomatiki: kupinda mukati, kutsvaga chigadzirwa, kuchiisa mungoro uye kupedza kubhadhara. Unotanga nekugadzira zvinhu zvepeji rekupinda, peji rekutsvaga/results, peji reruzivo rwechigadzirwa uye peji rengoro/rekubuda.
Mukati mezvinhu izvi zvepeji unotsanangura nzvimbo dzinowanikwa uye zviito zvemushandisi padanho rega rega, kubva pakuisa marekodhi kusvika pakudzvanya "Wedzera kungoro". Nzira dzako dzekuyedza dzinobva dzaverenga zvakafanana nemutauro wechisikigo: loginPage.login(), searchPage.searchFor(“laptop”), productPage.addToCart(), cartPage.checkout().
Mukati mekufamba kwese unoshandisa explicit waits chero kupi zvako zvinhu zvinoiswa asynchronously, sekumirira kuti runyorwa rwemhedzisiro ruonekwe kana kuti AJAX updates ipedzwe mushure mekuwedzera chinhu mungoro. Uyu mukana wakakwana wekudzidzira hunyanzvi hwako hwekubatanidza zvinhu kana zvichikosha.
Pakupera kwebvunzo unosimbisa mamiriro ebhizinesi akakosha nezvirevo: chigadzirwa chakakodzera chiri mungoro, mitengo inokwira nemazvo, uye meseji yekusimbisa inoenderana nezvaitarisirwa. Kuongororwa uku kunoshandura chinyorwa chebrowser kuita bvunzo inoshanda otomatiki ine chinangwa inochengetedza mashandiro chaiwo.
Paunenge wapedza chirongwa chidiki chakadaro, unenge watobata pfungwa huru dzeSelenium: WebDriver setup, locators, waits, POM, assertions, cross-browser execution uye basic maintenance strategies. Kubva ipapo idanho rechisikigo kubatanidza bvunzo dzako nezvishandiso zveCI uye kuwedzera chimiro chako nemapatani anotungamirirwa nedata kana mazwi akakosha.
Mushure mekufamba nepfungwa dzakatangira Selenium, zvikamu zvayo zvikuru, magariro, WebDriver scripting, locator uye waiting strategies, Page Object Model, change management, cross-browser execution uye maturusi akaita seParasoft Selenic, ikozvino wava nepfungwa dzakakwana dzezvinoreva kuvaka automation yeSelenium inoshanda kune vanotanga asi ine hunyanzvi. Nekudzidzira kwakasimba uye mapurojekiti anowedzera, pfungwa idzodzo dzinobva padzidziso kuenda kune tsika, uye uchangozviwana uchigadzira bvunzo dzakachena, uchikurumidza kugadzirisa matambudziko nekukasika uye uchishandisa Selenium semubatsiri ane simba pane kurwisana nayo pese paunoita.
