Ndanga ndiri pamberi-yekupedzisira kusimudzira kwenguva yakakwana kuti ndione maitiro pamusoro pemakore: vagadziri vadiki vanoshanda neiyo paradigm nyowani yekuronga vasinganzwisisi mamiriro ezvakaitika kare. Izvo, zvechokwadi, zvinonzwisisika zvakakwana kusaziva chimwe chinhu. Dandemutande inzvimbo hombe kwazvo ine hunyanzvi hwakasiyana siyana uye hunyanzvi, uye hatigare tichiziva zvatisingazive. Kudzidza mundima iyi rwendo runoenderera kwete chimwe chinhu chinoitika kamwe chete uye chinopera. Nyaya iripo: Mumwe munhu pachikwata changu akabvunza kana zvaikwanisika kutaura kana vashandisi vachifamba kubva kune imwe tebhu muUI. Ndakaratidza chiitiko cheJavaScript chisati charorwa. Asi avo vakamboita izvi kare vanoziva izvi zvinogoneka nekuti vakarohwa nechenjedzo nezve data isina kuchengetwa pane mamwe mawebhusaiti, ayo asati aturwa inyaya yekushandiswa. Ndakaratidzawo pejiHide uye kuonekwaShandura zviitiko kune wandaishanda naye kuitira chiyero chakanaka. Ndakaziva sei nezvazvo? Nekuti yakauya mune imwe chirongwa, kwete nekuti ndakadzidza pamusoro payo pandakatanga kudzidza JavaScript. Ichokwadi ndechekuti mazuva ano epamberi-ekupedzisira masisitimu akamira pamapfudzi emahofori etekinoroji akavatangira. Iwo abstract maitirwo ebudiriro, kazhinji kune iri nani yekuvandudza ruzivo iyo inoderedza, kana kutobvisa, kukosha kwekuziva kana kubata izvo zvagara zvichikosha kumberi-kumagumo pfungwa munhu wese angangofanira kuziva. Funga nezveCSS Object Model (CSSOM). Iwe unogona kutarisira kuti chero munhu anoshanda muCSS neJavaScript ane boka remaoko-pa CSSOM ruzivo, asi hazvisi izvo zvichagara zvakadaro. Paive neReact purojekiti ye-e-commerce saiti yandakashanda kwataida kurodha shiti remupi wekubhadhara akasarudzwa iye zvino. Dambudziko nderekuti shizha remaitiro rairodha papeji rega rega apo raingodiwa pane imwe peji. Mugadziri akapihwa basa rekuita kuti izvi zviitike akange asati amboisa pepa rekuita zvine simba. Zvekare, izvi zvinonzwisisika zvachose kana React ichibvisa nzira yechinyakare yaungave wakasvika pairi. Iyo CSSOM ingangove isiri chinhu chaunoda pabasa rako remazuva ese. Asi zvinokwanisika kuti iwe uchada kutaurirana nayo pane imwe nguva, kunyangwe mune imwe-yekumwe muenzaniso. Zviitiko izvi zvakandikurudzira kunyora chinyorwa ichi. Kune akawanda aripo ewebhu maficha uye matekinoroji musango aungasambobata zvakananga mubasa rako rezuva nezuva. Pamwe iwe uchiri mutsva mukuvandudza webhu uye hausi kuzviziva nekuti wakanyura mukudonhedza kweimwe chimiro chisingade kuti iwe uizive zvakadzama, kana kutotombo ziva. Ndiri kutaura zvakananga nezve XML, iyo vazhinji vedu tinoziva mutauro wekare usina kunyatsosiyana kubva kuHTML. Ndiri kuunza izvi nekuda kwenhaurirano dzichangoburwa dzeWHATWG dzinokurudzira kuti chikamu chakakosha cheiyo XML stack inozivikanwa seXSLT programming inofanira kubviswa kubva kumabhurawuza. Urwu ndirwo rudzi rwechikuru, tekinoroji iripo yatave nayo kwemakore inogona kushandiswa kune chimwe chinhu chinoshanda semamiriro eCSSOM anga ari maive nechikwata changu. Wakamboshanda neXSLT kare? Ngationei kana tikasendamira zvakanyanya muiyi tekinoroji yechinyakare uye nekusimudzira maficha ayo kunze kweiyo XML kugadzirisa matambudziko epasirese nhasi. XPath: Iyo Central API Iyo inonyanya kukosha XML tekinoroji iyo ingangove inonyanya kubatsira kunze kweyakatwasuka XML maonero ndeye XPath, mutauro wemubvunzo unokutendera iwe kuti uwane chero node kana hunhu mumuti wemakapu une mudzi mumwe chete. Ini ndine rudo rwepamoyo rweXSLT, asi izvo zvakare zvinotsamira paXPath, uye rudo rwemunhu runofanira kuiswa parutivi mukukosha kwechinzvimbo. Nharo yekubvisa XSLT haitauri nezve XPath, saka ndinofunga ichiri kubvumidzwa. Izvo zvakanaka nekuti XPath ndiyo yepakati uye inonyanya kukosha API mune ino sutu yetekinoroji, kunyanya kana uchiedza kutsvaga chimwe chinhu chekushandisa kunze kwakajairika XML kushandiswa. Izvo zvakakosha nekuti, nepo CSS selectors inogona kushandiswa kuwana akawanda ezvinhu zviri papeji rako, havazviwane zvese. Uyezve, vasarudzo veCSS havagone kushandiswa kutsvaga chinhu chinoenderana nechinzvimbo chayo muDOM. XPath inogona. Zvino, vamwe venyu vanoverenga izvi vanogona kuziva XPath, uye vamwe vangasadaro. XPath inzvimbo yakakura kwazvo yetekinoroji, uye ini handikwanise kunyatso kudzidzisa zvese zvekutanga uye zvakare kukuratidza zvinhu zvinotonhorera zvekuita nazvo muchinyorwa chimwe chete seizvi. Ini chaizvo ndakaedza kunyora icho chinyorwa, asi avhareji Smashing Magazine kudhindwa hakuendi pamusoro pe5,000 mazwi. Ndainge ndatova pa more than2,000 mazwi achiri pakati nepakati pekutanga. Saka, ini ndichatanga kuita zvinhu zvinotonhorera neXPath uye kukupa mamwe malink aunogona kushandisa kune izvo zvekutanga kana iwe ukawana zvinhu izvi zvinonakidza. Kubatanidza XPath & CSS XPath inogona kuita zvinhu zvakawanda izvo CSS vasarudze havakwanise kana vachibvunza zvinhu. Asi vasarudzo veCSS vanogonawo kuita zvinhu zvishoma izvo XPath isingakwanise, zvinoti, kubvunza zvinhu nemazita ekirasi.

CSS XPath .myClass /*[ine(@class, "myClass")]

Mumuenzaniso uyu, CSS inobvunza zvinhu zvine .myClass classname. Zvichakadaro, iyo XPath muenzaniso inobvunza zvinhu zvine hunhu kirasi ine tambo "myClass". Nemamwe mashoko, inosarudza zvinhu zvine myClass mune chero hunhu, kusanganisira zvinhu zvine .myClass classname - pamwe nezvinhu zvine "myClass" mutambo, senge .myClass2. XPath yakakura mupfungwa iyoyo. Saka, kwete. Ini handisi kutaura kuti isu tinofanira kukanda CSS totanga kusarudza zvese zvinhu kuburikidza neXPath. Haisi iyo pfungwa. Icho chiripo ndechekuti XPath inogona kuita zvinhu izvo CSS isingakwanise uye zvichingogona kubatsira zvakanyanya, kunyangwe iri yekare tekinoroji mubrowser stack uye inogona kunge isingaite sezviri pachena pekutanga. Ngatishandisei matekinoroji maviri pamwe chete kwete nekuti isu tinogona chete, asi nekuti isu tichadzidza chimwe chinhu nezve XPath mukuita, tichiiita chimwe chishandiso mune yako stack - imwe yaungave usingazive yanga iripo nguva yese! Dambudziko nderekuti nzira yeJavaScript's document.evaluate uye nzira dzakasiyana-siyana dzekusarudza mibvunzo dzatinoshandisa neCSS API dzeJavaScript hadzienderane. Ini ndagadzira inoenderana querying API kuti titange, kunyangwe zvinobvumwa, ini handina kuisa pfungwa zhinji mazviri sezvo kuri kubva pane zvatiri kuita pano. Heino muenzaniso wakapusa wekushanda wemubvunzo unogoneka mugadziri: Ona iyo Pen queryXPath [yakagadzirwa] naBryan Rasmussen. Ini ndawedzera nzira mbiri pachinhu chegwaro: queryCSSSelectors (iyo inonyanya kubvunzaSelectorAll) uye queryXPaths. Zvose izvi zvinodzorera chinhu chemubvunzoResults:

{ queryType: nodes | tambo | nhamba | boolean, mhedzisiro: chero[] // html zvinhu, xml zvinhu, tambo, nhamba, booleans, queryCSSSelectors: (mubvunzo: tambo, gadzirisa: boolean) => queryResults, queryXpaths: (mubvunzo: tambo, gadzirisa: boolean) => queryResults }

Iwo queryCSSSelectors uye queryXpaths mabasa anomhanyisa muvhunzo waunovapa pamusoro pezvinhu zviri mumhedzisiro array, chero mhedzisiro iri yemhando node, hongu. Zvikasadaro, inodzosa queryResult ine isina chinhu array uye mhando yemanodhi. Kana iyo amend property ikaiswa kuti ichokwadi, mabasa acho anochinja ega queryResults. Pasina mamiriro ezvinhu izvi hazvifanirwe kushandiswa munzvimbo yekugadzira. Ndiri kuzviita nenzira iyi kuratidza zvakasiyana siyana zvekushandisa maviri emibvunzo APIs pamwechete. Muenzaniso Mibvunzo Ndinoda kuratidza mienzaniso mishoma yemibvunzo yakasiyana yeXPath inoratidza zvimwe zvezvinhu zvine simba zvavanogona kuita uye kuti zvingashandiswa sei panzvimbo yedzimwe nzira. Muenzaniso wekutanga ndewe //li/text(). Izvi zvinobvunza zvese li element uye zvinodzosa zvinyorwa zvavo zvinyorwa. Saka, kana isu taizobvunza zvinotevera HTML:

  • imwe
  • mbiri
  • vatatu

…izvi ndizvo zvakadzoserwa:

{"queryType":"xpathEvaluate","zvawanikwa":["one","two","three"],"resultType":"tambo"}

Nemamwe manzwi, tinowana nhevedzano inotevera: ["imwe","mbiri","tatu"]. Kazhinji, iwe waizobvunza kuti li element kuti uwane izvo, shandura mhedzisiro yemubvunzo iwoyo kuita muunganidzwa, mepu iyo rondedzero, uye dzorera mameseji node yechinhu chimwe nechimwe. Asi isu tinogona kuzviita zvakanyanya muchidimbu neXPath: document.queryXPaths("//li/text()").results.

Ziva kuti nzira yekuwana mameseji node ndeye kushandisa text(), inoita senge siginicha yebasa - uye ndizvo. Inodzosa node yemavara echinhu. Mumuenzaniso wedu, pane matatu li element mumarkup, imwe neimwe iine mavara ("imwe", "mbiri", uye "matatu"). Ngatitarisei mumwezve muenzaniso wemavara () mubvunzo. Fungidzira kuti iyi ndiyo markup yedu: Pinda

Ngatinyorei mubvunzo unodzosa iyo href hunhu kukosha: document.queryXPaths("//a[text() = 'Sign In']/@href").results.

Uyu mubvunzo weXPath pagwaro razvino, semuenzaniso wekupedzisira, asi panguva ino tinodzosera iyo href hunhu hwelink (chimwe chinhu) chine mavara ekuti "Sign In". Chaivo vakadzokamhedzisiro ndeye ["/login.html"]. XPath Mabasa Overview Kune akati wandei eXPath mabasa, uye pamwe hausati wajairana nawo. Pane akati wandei, ndinofunga, akakodzera kuziva nezvazvo, kusanganisira zvinotevera:

starts-withKana mavara achitanga nemumwe muenzaniso wemavara, anotanga-na(@href, 'http:') anodzoka zvechokwadi kana ma href attribute achitanga na http:. ineKana chinyorwa chine mumwe muenzaniso wechinyorwa, chine(chinyorwa(), "Smashing Magazine") chinodzosa chokwadi kana chinyorwa node iine mazwi ekuti "Smashing Magazine" mairi chero kupi. countReturns kuverenga kuti vangani machisi aripo kumubvunzo. Semuyenzaniso, count(//*[starts-na(@href, 'http:']) inodzosa kuverenga kuti mangani malink ari muchimiro node ane maelementi ane href hunhu hune mavara anotanga ne http:. substringWorks seJavaScript substring, kunze kwekunge wapfuura tambo senharo. Semuenzaniso, substring("chinyorwa changu", 2, 4) inodzosa "y t". substring-before Inodzosa chikamu chetambo pamberi peimwe tambo. Semuenzaniso, substing-before("chinyorwa changu", " ") inodzosa "yangu". Saizvozvo, substring-before("hi","bye") inodzosera tambo isina chinhu. substring-afterInodzosera chikamu chetambo mushure meimwe tambo. Semuenzaniso, substing-after("chinyorwa changu", " ") inodzosa "zvinyorwa". Saizvozvo, substring-after("hi","bye") inodzosa tambo isina chinhu. normalize-space Inodzosa tambo yenharo ine chichena chakajairwa nekubvisa chinotungamira nekutevera chichena uye kutsiva kutevedzana kwemavara machena nenzvimbo imwe chete. notReturns a boolean true kana nharo iri yenhema, zvikasadaro nhema. trueReturns boolean chokwadi. falseInodzosera boolean nhema. concatChimwe chetecho seJavaScript concat, kunze kwekunge usingaimhanye senzira patambo. Pane kudaro, iwe unoisa tambo dzese dzaunoda kubatanidza. string-lengthIzvi hazvina kufanana neJavaScript-tambo-urefu, asi zviri nani inodzosa kureba kwetambo iyo yakapihwa senharo. shanduraIzvi zvinotora tambo uye zvinoshandura nharo yechipiri kuita nharo yechitatu. Semuyenzaniso, dudzira("abcdef", "abc", "XYZ") zvinobuda XYZdef.

Kunze kweaya mamwe mabasa eXPath, kune akati wandei mamwe mabasa anoshanda zvakafanana neavo JavaScript - kana madhiri mune chero mutauro wechirongwa - waungangowana uchibatsira, senge pasi, sirin'i, kutenderera, sum, zvichingodaro. Demo rinotevera rinoratidza rimwe nerimwe remabasa aya: Ona iyo Pen XPath Numerical mabasa [yakagadzirwa] naBryan Rasmussen. Ziva kuti, senge mazhinji etambo manipulation mabasa, mazhinji eiyo manhamba anotora imwe chete yekuisa. Izvi, hongu, nekuti ivo vanofanirwa kushandiswa kubvunza, senge mukupedzisira XPath muenzaniso: //li[pasi(chinyorwa())> 250]/@val

Kana iwe ukadzishandisa, semizhinji yemienzaniso inoita, unozopedzisira waimhanyisa pane yekutanga node inoenderana nenzira. Kune zvakare mamwe marudzi ekushandura mabasa aunofanirwa kudzivirira nekuti JavaScript inotova neyayo mhando yekushandura matambudziko. Asi panogona kuve nenguva dzaunoda kushandura tambo kuita nhamba kuti utarise kune imwe nhamba. Mabasa anoseta mhando yechinhu i boolean, nhamba, tambo, uye node. Aya ndiwo akakosha XPath datatypes. Uye sezvaungafungidzira, mazhinji emabasa aya anogona kushandiswa pane datatypes isiri DOM node. Semuenzaniso, substring-after inotora tambo sezvatakambovhara, asi inogona kunge iri tambo kubva kune href hunhu. Inogonawo kungova tambo:

const testSubstringAfter = document.queryXPaths("substring-after('hello world',' ')");

Zviripachena, uyu muenzaniso uchatidzosera mibairo se["nyika"]. Kuratidza izvi mukuita, ndagadzira peji redemo ndichishandisa mabasa achipokana nezvinhu zvisiri zveDOM node: Ona iyo Pen queryXPath [yakagadzirwa] naBryan Rasmussen. Unofanira kucherechedza chinhu chinokatyamadza chebasa rekushandura, chinova chokuti kana une munhu ari munharo yechipiri (kureva, mazita emavara aunoda kushandurirwa) uye pasina mavara anoenderana anoturikira, iwo mavara anobviswa pane zvabuda. Saka, izvi:

translate('Hello, My Name is Inigo Montoya, wakauraya baba vangu, gadzirira kufa','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','*')

…zvinobuda mutambo, kusanganisira nzvimbo: [" * * ** "]

Izvi zvinoreva kuti vara “a” riri kuturikirwa kuasterisk (*), asi mamwe mavara ese asina dudziro akapihwa tambo yaakananga anobviswa zvachose. Machena ndiwo asara chetepakati pemavara akashandurwa kuti “a”. Zvakare, mubvunzo uyu:

translate('Hesi, Zita rangu ndinonzi Inigo Montoya, wakauraya baba vangu, gadzirira kufa','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','**********************************************')")

... haina dambudziko uye inoburitsa mhedzisiro inoita seizvi:

"***** **************************************************"

Zvinogona kukurova kuti hapana nzira iri nyore muJavaScript yekuita chaizvo izvo XPath dudziro inoita, kunyangwe kune akawanda ekushandisa kesi, tsivaAll nemataurirwo akajairika anogona kuzvibata. Unogona kushandisa nzira imwe chete yandaratidza, asi izvo hazvina kukwana kana chaunoda kuri kushandura tambo. Iyo inotevera demo inoputira XPath's dudziro basa kuti ipe JavaScript vhezheni: Ona basa reshanduro yePeni [yakagadzirwa forogo] naBryan Rasmussen. Ndekupi kwaungashandisa chinhu chakadai? Funga nezveCaesar Cipher encryption ine nzvimbo-nhatu offset (semuenzaniso, kumusoro-kwe-the-line encryption kubva 48 B.C.):

translate("Kesari ari kuronga kuyambuka Rubicon!", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", "XYZABCDEFGHIJKLMNOPQRSTUVWxyzabcdefghijklmnopqrstuvw")

Runyoro rwekupinza "Caesar arikuronga kuyambuka Rubicon!" mhinduro mu "Zxbpxo fp mixkkfkd ql zolpp qeb Oryfzlk!" Kuti ndipe mumwe muenzaniso unokurumidza wemikana yakasiyana-siyana, ndakaita basa resimbi rinotora tambo yekupinza uye rinoshandisa shanduro yekushandura kudzorera zvinyorwa, kusanganisira mavara ose anotora umlauts. Ona iyo Pen metal function [yakagadzirwa forogo] naBryan Rasmussen.

const metal = (str) => { return translate(str, "AOUaou","ÄÖÜäöü"); }

Uye, kana akapihwa chinyorwa "Motley Crue mitemo, rock on dudes!", Inodzoka "Mötley Crüe rüles, röck ön düdes!" Zviripachena, munhu anogona kunge aine marudzi ese eparody mashandisiro echiito ichi. Kana ndiwe, saka chinyorwa ichi cheTVTropes chinofanira kukupa iwe nekukurudzira kwakawanda. Kushandisa CSS Ne XPath Rangarira chikonzero chedu chikuru chekushandisa vasarudzo veCSS pamwe chete neXPath: CSS inonzwisisa chaizvo kuti kirasi chii, nepo zvakanakisa zvaunogona kuita neXPath kuenzanisa kwetambo kwekirasi hunhu. Izvo zvichashanda muzviitiko zvakawanda. Asi kana waizosangana nemamiriro ezvinhu apo, toti, mumwe munhu akagadzira makirasi ane zita .primaryLinks uye .primaryLinks2 uye wanga uchishandisa XPath kuwana .primaryLinks kirasi, ipapo ungangopinda mumatambudziko. Chero bedzi pasina chinhu chakapusa chakadaro, iwe ungangoshandisa XPath. Asi zvinondirwadza kutaura kuti ndakamboshanda kunzvimbo dzine vanhu vanoita zvinhu zveupenzi zvakadaro. Heino imwe demo inoshandisa CSS uye XPath pamwe chete. Inoratidza zvinoitika kana isu tikashandisa kodhi kumhanyisa XPath pane yemamiriro node isiri iyo gwaro node. Ona iyo Pen css uye xpath pamwe chete [yakafukidzwa] naBryan Rasmussen. Mubvunzo weCSS ndewe .relatedarticles a, iyo inotora zvikamu zviviri mu div yakagoverwa .relatedarticles class. Mushure meizvozvo mibvunzo mitatu "yakaipa", kureva kuti, mibvunzo isingaite zvatinoda kuti vaite kana vachimhanya nezvinhu izvi senzvimbo yemamiriro ezvinhu. Ndinogona kutsanangura kuti sei vari kuzvibata zvakasiyana nezvaungatarisira. Mibvunzo mitatu yakaipa iri mubvunzo ndeiyi:

//text(): Inodzosa zvinyorwa zvese mugwaro. //a/text(): Inodzosa ese mameseji mukati mezvinongedzo mugwaro. ./a/text(): Hapana mhedzisiro.

Chikonzero chemhedzisiro iyi ndechekuti nepo mamiriro ako ari zvinhu zvakadzoserwa kubva kuCSS query, // inopikisana negwaro rese. Iri ndiro simba reXPath; CSS haigone kuenda kubva kune imwe node kuenda kumadzitateguru uyezve kuhama yemadzitateguru iwayo, uye kufamba ichidzika kune muzukuru wehama iyoyo. Asi XPath inogona. Zvichakadaro, ./ inobvunza vana venodhi yazvino, apo doti (.) rinomiririra nodhi yazvino, uye slash yekumberi (/) inomiririra kuenda kune imwe nodi yemwana - ingave hunhu, chinhu, kana chinyorwa chinotemwa nechikamu chinotevera chegwara. Asi hapana mwana chinhu chakasarudzwa nemubvunzo weCSS, nekudaro mubvunzo iwoyo haudzose chinhu. Pane mibvunzo mitatu yakanaka mune iyo yekupedzisira demo:

.//text(), ./text(), normalize-space(./text()).

Iyo yakajairika-nzvimbo yemubvunzo inoratidza XPath basa rekushandisa, asi zvakare inogadzirisa dambudziko rinosanganisirwa mune mimwe mibvunzo. Iyo HTML yakagadzirwa seizvi:

Kuita otomatiki Yako Yekuyedza Feature neSelenium WebDriver

Mubvunzo unodzorera mutsara wekudya pakutanga uye kumagumo ezvinyorwa node,uye normalize-nzvimbo inobvisa izvi. Kushandisa chero XPath basa rinodzorera chimwe chinhu kunze kwe boolean ine yekuisa XPath inoshanda kune mamwe mabasa. Demo rinotevera rinoratidza akati wandei mienzaniso: Ona iyo Pen xpath mabasa emienzaniso [yakafukidzwa] naBryan Rasmussen. Muenzaniso wekutanga unoratidza dambudziko raunofanira kungwarira. Kunyanya, iyo inotevera kodhi:

document.queryXPaths("substring-after(//a/@href,'https://')");

…inodzorera tambo imwe chete:

"www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/"

Zvine musoro, handiti? Aya mabasa haadzore arrays asi pane imwechete tambo kana nhamba imwechete. Kumhanyisa basa chero kupi nemhinduro dzakawanda kunongodzosera mhinduro yekutanga. Mhedzisiro yechipiri inoratidza zvatinoda chaizvo:

document.queryCSSSelectors("a").queryXPaths("substring-after(./@href,'https://')");

Iyo inodzorera mutsara wetambo mbiri:

["www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/",www.smashingmagazine.com/2022/11/automated-test-results-improve-accessibility/"]

XPath mabasa anogona kuiswa senge mabasa muJavaScript. Saka, kana tichiziva Smashing Magazine URL chimiro, tinogona kuita zvinotevera (tichishandisa template literals inokurudzirwa): `shandura ( tambo ( substring-after(./@href, 'www.smashingmagazine.com/') ,9), '/','')`

Izvi zvanyanya kuomesesa zvekuti zvinoda mashoko anotsanangura zvazvinoita: tora maURL ese kubva mu href attribute mushure me www.smashingmagazine.com/, bvisa mavara mapfumbamwe ekutanga, wozoshandura iyo forward slash (/) character pasina kuti ubvise mhedziso yemberi. The result array:

["feature-testing-selenium-webdriver","otomatiki-yedzo-mhedzisiro-inovandudza-kuwanikwa"]

More XPath Use Cases XPath inogona kunyatso kupenya mukuyedza. Chikonzero hachina kunetsa kuona, sezvo XPath inogona kushandiswa kuwana chinhu chose muDOM, kubva chero chinzvimbo muDOM, nepo CSS isingakwanise. Iwe haugone kuvimba nemakirasi eCSS anoramba achienderana mune akawanda emazuvano ekuvaka masisitimu, asi neXPath, isu tinokwanisa kuita mamwe machesi akasimba sekuti zvinyorwa zvechinhu chii, zvisinei nekushanduka kweDOM chimiro. Pave nekutsvagisa pamatekinoroji anokutendera iwe kuti ugadzire yakatsiga XPath bvunzo. Hapana chakaipisisa kupfuura kuita bvunzo kubuda uye kukundikana nekuda kwekuti CSS sarudzo haichashandi nekuti chimwe chinhu chapihwa zita kana kubviswa. XPath zvakare yakanaka chaizvo pakutorwa kwakawanda locator. Kune inopfuura nzira imwe yekushandisa XPath mibvunzo kuenzanisa chinhu. Ndizvo zvimwe chete neCSS. Asi XPath mibvunzo inogona kupinda muzvinhu nenzira yakanangwa iyo inomisa izvo zvinodzoserwa, zvichikutendera kuti uwane chaiyo match panogona kunge paine akati wandei. Semuenzaniso, tinogona kushandisa XPath kudzosera chaiyo h2 chinhu chiri mukati me div iyo inokurumidza kutevera munin'ina div iyo, inewo mufananidzo wemwana ane data-testID = "mutungamiri" hunhu pairi:

usanzwe musoro wenyaya uyu

Musatorewo musoro wenyaya uyu

Musoro wemufananidzo wemutungamiri

Uyu ndiwo mubvunzo: document.queryXPaths(` // div[ vanotevera-mukoma ::div[1] /img[@data-testID='mutungamiri'] ] /h2/ chinyorwa() `);

Ngatidonhedzei mudemo kuti tione kuti zvese zvinosangana sei: Ona Peni Complex H2 Mubvunzo [wakaforoswa] naBryan Rasmussen. Saka, hongu. Kune dzakawanda nzira dzinogoneka kune chero chinhu muyedzo uchishandisa XPath. XSLT 1.0 Deprecation Ndakataura kare kuti timu yeChrome inoronga kubvisa XSLT 1.0 rutsigiro kubva kubrowser. Izvo zvakakosha nekuti XSLT 1.0 inoshandisa XML-yakatarisana hurongwa hwekushandurwa kwegwaro iyo, zvakare, inovimba neXPath 1.0, inova inowanikwa mumabhurawuza mazhinji. Kana izvozvo zvikaitika, tinorasikirwa nechikamu chakakosha cheXPath. Asi nekupihwa chokwadi chekuti XPath yakanaka chaizvo pakunyora bvunzo, ini ndinoona zvisingaite kuti XPath yese ichanyangarika chero nguva munguva pfupi. Zvakadaro, ndakaona kuti vanhu vanofarira chimwe chinhu kana chabviswa. Uye ichokwadi mune iyo XSLT 1.0 iri kudzikiswa. Pane nhaurirano yese irikuitika kuHacker News yakazadzwa nenharo dzekupokana nekudzikisirwa. Iyo posvo pachayo muenzaniso wakanaka wekugadzira mabhurogi chimiro neXSLT. Iweunogona kuzviverengera nhaurirano yacho, asi inopinda mukuti JavaScript ingashandiswa sei seshim yeXLST kubata idzo mhando dzenyaya. Ndakaonawo mazano ekuti mabhurawuza anofanirwa kushandisa SaxonJS, inova chiteshi cheJavaScript's Saxon XSLT, XQUERY, uye XPath injini. Iro ipfungwa inonakidza, kunyanya sezvo Saxon-JS inoshandisa yazvino vhezheni yezvirevo izvi, nepo pasina browser inoshandisa chero vhezheni yeXPath kana XSLT kupfuura 1.0, uye hapana inoshandisa XQuery. Ndakasvika kuna Norm Tovey-Walsh kuSaxonica, kambani iri kuseri kweSaxonJS nedzimwe shanduro dzeinjini yeSaxon. Akati: "Kana chero mutengesi webrowser anga achifarira kutora SaxonJS senzvimbo yekutanga yekubatanidza tekinoroji yeXML mubrowser, tingafara kukurukura navo." - Norm Tovey-Walsh.

Asi zvakare akawedzera: "Ndingashamisika zvikuru kana chero munhu akafunga kuti kutora SaxonJS muchimiro chayo uye kuidonhedzera mubrowser kuvaka isina kuchinjwa ingave nzira yakanaka." Mutengesi webrowser, nechimiro chekuti ivo vanovaka bhurawuza, vanogona kusvika pakubatanidzwa kwakadzika zvakanyanya kupfuura isu 'kubva kunze'. ”- Norm Tovey-Walsh.

Zvakakosha kucherechedza kuti zvakataurwa naTovey-Walsh zvakauya rinenge vhiki pamberi pechiziviso chekubvisa XSLT. Mhedziso Ndaigona kuenderera mberi. Asi ndinovimba izvi zvakaratidza simba reXPath uye zvakakupa yakawanda mienzaniso inoratidza mashandisiro ekuita zvinhu zvikuru. Iwo muenzaniso wakakwana weiyo yekare tekinoroji mubrowser stack iyo ichine zvakawanda zvekushandisa nhasi, kunyangwe iwe usati wamboziva kuti iripo kana kumbofunga kuisvika. Kuwedzera Kuverenga

"Kuvandudza Kusimba kweAutomated Web Tests neMutauro Wechisikigo" (ACM Digital Library) naMaroun Ayli, Youssef Bakouny, Nader Jalloul, naRima KilanyChinyorwa ichi chinopa mienzaniso yakawanda yeXPath yekunyora bvunzo dzakasimba. XPath (MDN)Iyi inzvimbo yakanaka yekutanga kana iwe uchida tsananguro yehunyanzvi inotsanangura mashandiro anoita XPath. XPath Tutorial (ZVON) Ndakaona chidzidzo ichi chichinyanya kubatsira mukudzidza kwangu, nekuda kwehuwandu hwemienzaniso uye tsananguro dzakajeka. XPatherIchi chishandiso chinopindirana chinoita kuti ushande zvakananga nekodhi.

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free