Ke ntse ke le mo tlhabololong ya kwa pele ka nako e telele go bona tlwaelo mo dingwageng tse di fetileng: batlhabolodi ba ba botlana ba dira ka sekao se sešwa sa go dira diporokeramo kwantle ga go tlhaloganya bokao jwa hisitori ya yone. Gone ke boammaaruri gore go a utlwala sentle go sa itse sengwe. Webo ke lefelo le legolo thata le le nang le bokgoni jo bo farologaneng le dilo tse di kgethegileng, mme ga se ka metlha re itseng se re sa se itseng. Go ithuta mo lephateng le ke loeto lo lo tswelelang go na le selo se se diragalang gangwe fela se bo se fela. Kgetse mo ntlheng: Mongwe mo setlhopheng sa me o ne a botsa gore a go a kgonega go bolela gore a badirisi ba tsamaya kgakala le thebo e e rileng mo UI. Ke supile tiragalo ya JavaScript ya pele ga go laisa. Empa ba kileng ba sebetsana le sena pele ba tseba hore sena se a kgoneha hobane ba ile ba otlwa ke ditsiboso ka dintlha tse sa bolokwang diwebsaeteng tse ding, tseo peleunload e leng nyeoe e tlwaelehileng ya tshebediso. Ke ne ka supa gape ditiragalo tsa pageHide le visibilityChange go modirimmogo le nna gore a kgone go lekanya sentle. Ke ne ke itse jang ka seo? Ka gonne e ne ya tlhagelela mo porojekeng e nngwe, e seng ka gonne ke ne ka ithuta ka yone fa ke ne ke ithuta JavaScript kwa tshimologong. Boammaaruri ke gore ditlhomeso tsa segompieno tsa kwa pele di eme mo magetleng a dikhamphani tse dikgolo tsa thekenoloji tse di neng tsa tla pele ga tsone. Di ntsha mekgwa ya tlhabololo, gantsi go bona maitemogelo a a botoka a motlhabolodi a a fokotsang, kgotsa le eleng go fedisa, tlhokego ya go itse kgotsa go ama se ka tlwaelo e ntseng e le dikgopolo tsa botlhokwa tsa kwa pele tse mongwe le mongwe a ka tswang a tshwanetse go di itse. Akanya ka Mofuta wa Selo sa CSS (CSSOM). O ka nna wa lebelela gore mongwe le mongwe yo o berekang mo CSS le JavaScript o na le maitemogelo a mantsi a CSSOM, mme ga se ka metlha go tla nnang jalo. Go ne go na le porojeke ya React ya lefelo la e-commerce le ke neng ke bereka mo go lone mo re neng re tlhoka go laisa letlhare la setaele la moabi wa tuelo yo o tlhophilweng ga jaana. Bothata e ne e le gore stylesheet e ne e laisa mo tsebeng nngwe le nngwe fa tota e ne e tlhokega fela mo tsebeng e e rileng. Motlhabolodi yo o neilweng tiro ya go dira gore seno se direge o ne a ise a ke a laise letlhare la setaele ka tsela e e fetofetogang. Gape, seno se a tlhaloganyesega fa React e ntsha mokgwa o o tlwaelegileng o o ka tswang o o fitlheletse. CSSOM e ka tswa e se sengwe se o se tlhokang mo tirong ya gago ya letsatsi le letsatsi. Mme go ka direga gore o tla tlhoka go dirisana le yone ka nako nngwe, tota le mo lekgetlong le le lengwe fela. Maitemogelo ano a ne a ntlhotlheletsa go kwala setlhogo seno. Go na le ditiriso tse dintsi tse di leng teng tsa webo le dithekenoloji mo nageng tse o ka nnang wa se ka wa di ama ka tlhamalalo mo tirong ya gago ya letsatsi le letsatsi. Gongwe o sa tswa go simolola go tlhama webo mme ga o di itse ka gonne o tseneletse thata mo go tlhaloganyeng letlhomeso le le rileng le le sa tlhokeng gore o le itse ka botlalo, kgotsa le eleng gotlhelele. Ke bua ka tlhamalalo ka XML, e bontsi jwa rona re e itseng e le puo ya bogologolo e e sa tshwaneng gotlhelele le HTML. Ke tlisa seno ka ntlha ya dipuisano tsa bosheng tsa WHATWG tse di akantshang gore karolo e e botlhokwa ya mokgobo wa XML e e bidiwang go dira diporokeramo tsa XSLT e tshwanetse go tlosiwa mo dibatling. Seno ke mofuta wa thekenoloji ya bogologolo, e e leng teng e re ntseng re na le yone dingwaga di le dintsi e e ka dirisediwang sengwe se se mosola jaaka boemo jwa CSSOM jo setlhopha sa me se neng se le mo go jone. A o kile wa bereka le XSLT pele? A re bone gore a re ikaega thata ka thekenoloji eno ya bogologolo le go dirisa dikarolo tsa yone kwa ntle ga bokao jwa XML go rarabolola mathata a mmatota gompieno. XPath: API ya Bogare Thekenoloji e e botlhokwa thata ya XML e gongwe e leng mosola thata kwa ntle ga pono e e tlhamaletseng ya XML ke XPath, puo ya dipotso e e go letlang go bona noutu epe kgotsa tshwano mo setlhareng sa go tshwaya se se nang le elemente e le nngwe ya modi. Ke na le lerato la botho bakeng sa XSLT, empa seo le sona se itshetlehile ka XPath, mme lerato la botho le tlameha ho behelwa ka thoko bohlokwa ba maemo. Ngangisano ya go tlosa XSLT ga e umake XPath, ka jalo ke akanya gore e santse e letleletswe. Seo se molemo ka gonne XPath ke API e e botlhokwa thata mo setlhopheng seno sa dithekenoloji, segolobogolo fa o leka go batla sengwe se o ka se dirisang kwa ntle ga tiriso e e tlwaelegileng ya XML. Go botlhokwa ka gonne, le fa ditlhophi tsa CSS di ka dirisiwa go batla bontsi jwa dielemente mo tsebeng ya gago, ga di kgone go di bona tsotlhe. Mo godimo ga moo, ditlhophi tsa CSS ga di ka ke tsa dirisiwa go batla elemente go ikaegilwe ka boemo jwa yone jwa ga jaana mo DOM. XPath e ka kgona. Jaanong, bangwe ba lona ba ba balang se ba ka tswa ba itse XPath, mme bangwe ba ka tswa ba sa itse. XPath ke karolo e kgolo ya thekenoloji, mme ga ke kgone go ruta dilo tsotlhe tsa motheo le go go bontsha dilo tse di monate tse o ka di dirang ka yone mo setlhogong se le sengwe se se tshwanang le seno. Tota ke lekile go kwala setlhogo seo, mme palogare ya kgatiso ya Smashing Magazine ga e fete mafoko a le 5 000. Ke ne ke setse ke le kwa godimo gaMafoko a le 2 000 fa a le mo bogareng jwa dithuto tsa motheo fela. Ka jalo, ke tlile go simolola go dira dilo tse dintle ka XPath mme ke go neye dikgokagano tse o ka di dirisang mo dilong tsa motheo fa o fitlhela dilo tseno di kgatlha. Go kopanya XPath le CSS XPath e ka dira dilo di le dintsi tse batlhophi ba CSS ba ka se kgoneng go di dira fa ba botsa dielemente. Mme batlhophi ba CSS gape ba ka dira dilo di le mmalwa tse XPath e ka se kgoneng go di dira, e leng, go botsa dielemente ka leina la tlelase.

CSS Tsela ya X .Tlelase ya me /*[e na le(@setlhopha, "Setlhopha sa me")]

Mo sekaong seno, CSS e botsa dielemente tse di nang le leina la tlelase la .myClass. Go sa le jalo, sekai sa XPath se botsa dielemente tse di nang le setlhopha sa tshwano se se nang le mogala wa “myClass”. Ka mafoko a mangwe, e tlhopha dielemente tse di nang le myClass mo tshwanong epe fela, go akaretsa le dielemente tse di nang le leina la tlelase la .myClass — mmogo le dielemente tse di nang le “myClass” mo mothaleng, tse di jaaka .myClass2. XPath e atlhame ka tlhaloganyo eo. Ka jalo, nnyaa. Ga ke re re tshwanetse go latlha CSS mme re simolole go tlhopha dielemente tsotlhe ka XPath. Ga se yone ntlha eo. Ntlha ke gore XPath e ka dira dilo tse CSS e ka se di kgoneng e bile e santse e ka nna mosola thata, le fa e le thekenoloji ya bogologolo mo mokong wa sebatli mme e ka nna ya se ka ya lebega e bonala sentle fa o e leba la ntlha. A re diriseng dithekenoloji tse pedi mmogo e seng fela ka gonne re ka kgona, mme ka gonne re tla ithuta sengwe ka XPath mo thulaganyong, re e dire sedirisiwa se sengwe mo mokong wa gago — se o ka tswang o ne o sa se itse se ntse se le teng ka nako yotlhe! Bothata ke gore mokgwa wa JavaScript wa document.evaluate le mekgwa e e farologaneng ya go tlhopha dipotso e re e dirisang le di-API tsa CSS tsa JavaScript ga di tsamaisane. Ke dirile API e e tsamaelanang ya go botsa go re simolola, le fa go ntse jalo, ga ke ise ke akanye thata ka yone ka gonne ke go tlogela se re se dirang fano. Sekao se se bonolo se se dirang sa sediriswa sa go aga dipotso tse di ka dirisiwang gape ke seno: Bona Tsela ya potso ya Pene [e e kgaogantsweng] ke Bryan Rasmussen. Ke tsentse mekgwa e mebedi mo selong sa tokomane: ditlhopho tsa potsoCSSS (tse tota e leng tsa potsoSelectorAll) le Ditsela tsa X tsa dipotso. Tseno ka bobedi di busetsa selo sa Dipholo tsa potso:

{ Mofuta wa potso: dinoutu | mogala | nomoro | bolean, dipholo: dipe[] // dielemente tsa html, dielemente tsa xml, megala, dinomoro, di-boolean, ditlhopho tsa potsoCSSS: (potso: mogala, baakanya: boolean) => Dipholo tsa potso, ditsela tsa potso: (potso: mogala, baakanya: boolean) => Dipholo tsa potso }

Ditshebetso tsa queryCSSSelectors le queryXpaths di tsamaisa potso eo o ba fang yona hodima dikarolo tse tatelaneng ya diphetho, ha feela tatelano ya diphetho e le ya dinoutu tsa mofuta, ehlile. Ho seng jwalo, e tla busetsa queryResult e nang le tatelano e se nang letho le mofuta wa dinoutu. Fa popego ya paakanyo e setilwe go nna boammaaruri, ditiro di tla fetola Dipholo tsa tsone tsa potso. Ga go na maemo ape seno se se tshwanetseng go dirisiwa mo tikologong ya tlhagiso. Ke e dira ka tsela eno fela go bontsha ditlamorago tse di farologaneng tsa go dirisa di-API tse pedi tsa dipotso mmogo. Dipotso tsa Sekao Ke batla go bontsha dikai di le mmalwa tsa dipotso tse di farologaneng tsa XPath tse di bontshang dilo dingwe tse di maatla tse di ka di dirang le kafa di ka dirisiwang ka gone mo boemong jwa mekgwa e mengwe. Sekao sa ntlha ke //li/sekwalwa (). Sena se botsa dikarolo tsohle tsa li mme se busetsa dinoutu tsa tsona tsa mongolo. Ka jalo, fa re ne re ka botsa HTML e e latelang:

  • nngwe
  • pedi
  • tharo

...se ke se se busiwang:

{"Mofuta waPotso":"xpathEvaluate","dipholo":["nngwe","pedi","tharo"],"Mofuta waDipholo":"mogala"}

Ka mafoko a mangwe, re bona thulaganyo e e latelang: ["nngwe","pedi","tharo"]. Ka tlwaelo, o ne o tla botsa dielemente tsa li go bona seo, o fetole sephetho sa potso eo go nna thulaganyo, o dire mmapa wa thulaganyo, mme o busetse noutu ya sekwalwa sa elemente nngwe le nngwe. Mme re ka dira seo ka bokhutshwane ka XPath: tokomane.potsoXDitsela ("//li/sekwalwa ()").dipholo.

Ela tlhoko gore tsela ya go bona noutu ya sekwalwa ke go dirisa text(), e e lebegang jaaka mosaeno wa tiro — mme ke yone. E busetsa noutu ya sekwalwa sa elemente. Mo sekaong sa rona, go na le dielemente di le tharo tsa li mo tshwaong, nngwe le nngwe e na le sekwalwa ("nngwe", "pedi", le "tharo"). A re lebelele sekai se sengwe gape sa potsopatlisiso ya text(). A re tseye gore seno ke tshwao ya rona: Tsena

A re kwaleng potso e e busetsang boleng jwa tshwano ya href: tokomane.potsoXDitsela ("//a [sekwalwa () = 'Saena'] / @ href ").dipholo.

Se ke potso ya XPath mo tokomaneng ya ga jaana, fela jaaka sekai sa bofelo, mme mo lekgetlong leno re busetsa tshwano ya href ya kgokagano (elemente) e e nang le sekwalwa sa “Sign In”. Dipoelo tsa mmatotasephetho ke ["/tsena.html"]. Kakaretso ya Ditiro tsa XPath Go na le ditiro di le mmalwa tsa XPath, mme gongwe ga o di tlwaele. Go na le di le mmalwa, ke akanya gore, tse di tshwanetseng go itsiwe ka tsone, go akaretsa le tse di latelang:

starts-withFa sekwalwa se simolola ka sekai se sengwe se se rileng sa sekwalwa, starts-with(@href, 'http:') e busetsa boammaaruri fa tshwano ya href e simolola ka http:. containsFa sekwalwa se na le sekai se sengwe se se rileng sa sekwalwa, contains(sekwalwa(), "Makasine wa go Thuba") e busetsa boammaaruri fa noutu ya sekwalwa e na le mafoko “Makasine wa go Thuba” mo go yone gongwe le gongwe. countE busetsa palo ya gore go na le ditshwano di le kae mo potsong. Ka sekai, count(//*[e simolola-ka(@href, 'http:']) e busetsa palo ya gore ke dikgokagano di le kae mo noutu ya bokao tse di nang le dielemente tse di nang le tshwano ya href e e nang le sekwalwa se se simololang ka http:. substringE dira jaaka mogalapotlana wa JavaScript, ntle le fa o fetisa mogala jaaka ngangisano. Ka sekai, mogalapotlana("mokwalo wa me", 2, 4) o busetsa "y t". substring-beforeE busetsa karolo ya mogala pele ga mogala o mongwe. Ka sekai, go tsenya-pele("mokwalo wa me", " ") go busetsa "me". Fela jalo, mogalapotlana-pele ("hi","bye") o busetsa mogala o o senang sepe. substring-afterE busetsa karolo ya mogala morago ga mogala o mongwe. Ka sekai, go tsenya-morago ga("mokwalo wa me", " ") go busetsa "mokwalo". Fela jalo, mogalapotlana-morago ga ("hi","bye") o busetsa mogala o o senang sepe. normalize-spaceE busetsa mogala wa ngangisano o o nang le sebaka se se tshweu se se tlwaelegileng ka go apola sebaka se se tshweu se se eteletseng pele le se se latelang le go emisetsa tatelano ya ditlhaka tsa sebaka se se tshweu ka sebaka se le sengwe. notE busetsa boammaaruri jwa boolean fa ngangisano e le maaka, go seng jalo e le maaka. trueE busetsa boammaaruri jwa boolean. maakaE busetsa maaka a boolean. concatSelo se le sengwe le concat ya JavaScript, ntle le fa o sa e dirise jaaka mokgwa mo mothaleng. Go na le moo, o tsenya dikgwele tsotlhe tse o batlang go di kopanya. string-lengthSeno ga se tshwane le boleele jwa mogala jwa JavaScript, mme go na le moo se busetsa boleele jwa mogala o o o filweng jaaka ngangisano. translateSe se tsaya mogala mme se fetola ngangisano ya bobedi go nna ngangisano ya boraro. Ka sekai, ranola ("abcdef", "abc", "XYZ") dipholo tsa XYZdef.

Ntle le ditiro tseno tse di rileng tsa XPath, go na le ditiro tse dingwe di le mmalwa tse di dirang fela jaaka balekane ba tsone ba JavaScript — kgotsa balekane ba tsone mo puong epe fela ya go dira diporokeramo — tse gongwe le tsone o ka di fitlhelang di le mosola, tse di jaaka fa fatshe, siling, kgolokwe, palo, jalo le jalo. Pontsho e e latelang e bontsha nngwe le nngwe ya ditiro tseno: Bona Ditiro tsa dipalo tsa Pene XPath [tse di kgaogantsweng] ke Bryan Rasmussen. Ela tlhoko gore, fela jaaka bontsi jwa ditiro tsa go dirisa megala, bontsi jwa tsa dipalo di tsaya tsenyo e le nngwe. Seno ke ka gonne di tshwanetse go dirisiwa go botsa dipotso, jaaka mo sekaong sa bofelo sa XPath: //li[fatshe(sekwalwa())> 250]/@boleng

Fa o di dirisa, jaaka bontsi jwa dikai di dira, o tla feleletsa o e tsamaisa mo noutu ya ntlha e e tsamaelanang le tsela. Gape go na le ditiro dingwe tsa phetolo ya mofuta tse gongwe o tshwanetseng go di tila ka gonne JavaScript e setse e na le mathata a yone a phetolo ya mofuta. Mme go ka nna le dinako tse o batlang go fetolela mogala go nna palo gore o kgone go o tlhola kgatlhanong le palo e nngwe. Ditiro tse di setang mofuta wa sengwe ke boolean, palo, mogala, le noutu. Tsena ke mefuta ya dintlha tsa bohlokwa tsa XPath. Mme jaaka o ka akanya, bontsi jwa ditiro tseno di ka dirisiwa mo mefuteng ya tshedimosetso e e seng dinoutu tsa DOM. Ka sekai, substring-after e tsaya mogala jaaka re setse re o akareditse, mme e ka nna mogala go tswa mo tshwanong ya href. Gape e ka nna mogala fela:

const tekoMogalapotlanaMorago = tokomane.queryXPaths ("mogalapotlana-morago ga ('dumela lefatshe',' ')");

Go bonala sentle gore sekai seno se tla re busetsa thulaganyo ya dipholo jaaka ["lefatshe"]. Go bontsha seno ka tiro, ke dirile tsebe ya pontsho ke dirisa ditiro kgatlhanong le dilo tse e seng dinoutu tsa DOM: Bona Tsela ya potso ya Pene [e e kgaogantsweng] ke Bryan Rasmussen. O tshwanetse go ela tlhoko karolo e e gakgamatsang ya tiro ya go ranola, e leng gore fa o na le tlhaka mo ngangisanong ya bobedi (ke gore, lenaane la ditlhaka tse o batlang di ranolwa) mme go se na tlhaka e e tshwanang e o ka ranolelang kwa go yone, tlhaka eo e a tlosiwa mo dipholong. Ka jalo, seno:

translate('Dumela, Leina la me ke Inigo Montoya, o bolaile rre, ipaakanyetse go swa',',','*')

...dipholo mo moleng, go akaretsa le diphatlha: [" * * ** "]

Se se raya gore tlhaka “a” e ranolelwa go nna naledi (*), mme tlhaka nngwe le nngwe e nngwe e e senang thanolo e e neetsweng mogala o o ikaeletsweng e tlosiwa gotlhelele. Sebaka se se tshweu ke sone sotlhe se re se setsengfa gare ga ditlhaka tsa “a” tse di ranotsweng. Mme gape, potso eno:

translate('Dumela, Leina la me ke Inigo Montoya, o bolaile rre, ipaakanyetse go swa','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,'

...ga e na bothata mme e ntsha dipholo tse di lebegang jaana:

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

Go ka go tlhaba gore ga go na tsela e e bonolo mo JavaScript ya go dira sentle se tiro ya thanolo ya XPath e se dirang, le fa mo mabakeng a le mantsi a tiriso, replaceAll ka dipolelwana tsa ka metlha e ka e tshwara. O ka dirisa mokgwa o o tshwanang le o ke o bontshitseng, mme seo ga se a siama fa e le gore se o se batlang fela ke go ranola dikgwele. Pontsho e e latelang e akaretsa tiro ya go ranola ya XPath go tlamela ka mofuta wa JavaScript: Bona tiro ya go ranola ya Pene [e e kgaogantsweng] ke Bryan Rasmussen. O ka dirisa sengwe se se tshwanang le seno kae? Akanya ka go tsenya khoutu ga Caesar Cipher ka go tlosiwa ga mafelo a mararo (ka sekai, go tsenya khoutu mo maemong a a kwa godimo go tloga ka 48 B.C.):

ranola("Kaesara o rulaganya go kgabaganya Rubicon!", "" "XYZABCDEFGHIJKLMNOPQRSTUV")

Mokwalo wa tsenyo o o reng “Kaesara o rulaganya go kgabaganya Rubicon!” go felela ka gore “Zxbpxo fp tlhakatlhakano ya tlholego!” Go fa sekai se sengwe se se bonako sa dikgonagalo tse di farologaneng, ke dirile tiro ya tshipi e e tsayang tshedimosetso ya mogala mme e dirisa tiro ya go ranola go busetsa sekwalwa, go akaretsa le ditlhaka tsotlhe tse di tsayang umlauts. Bona tiro ya tshipi ya Pene [e e forokilwe] ke Bryan Rasmussen.

tshipi e e tlhomameng = (mogala) => { busetsa ranola (str, "AOUaou","ÄÖÜäöü"); }

Mme, fa o ka newa mokwalo o o reng “Motley Crue o laola, lefika mo banneng!”, o busetsa “Mötley Crue o laola, lefika mo banneng!” Go bonala sentle gore motho a ka nna le mefuta yotlhe ya tiriso ya parody ya tiro eno. Fa e le gore ke wena, setlhogo seno sa TVTropes se tshwanetse go go naya tlhotlheletso e ntsi. Go dirisa CSS ka XPath Gakologelwa lebaka la rona le legolo la go dirisa ditlhophi tsa CSS mmogo le XPath: CSS e tlhaloganya sentle gore setlhopha ke eng, fa se se molemo go gaisa se o ka se dirang ka XPath e le dipapiso tsa megala ya tshwano ya setlhopha. Seo se tla bereka mo maemong a mantsi. Mme fa o ne o ka kopana le seemo se mo go sone, a re re, mongwe a tlhamileng ditlhopha tse di bidiwang .primaryLinks le .primaryLinks2 mme o dirisa XPath go bona setlhopha sa .primaryLinks, go ka direga gore o kopane le mathata. Fa fela go se na sepe sa bomatla se se ntseng jalo, gongwe o ka dirisa XPath. Mme ke utlwile botlhoko go bega gore ke kile ka bereka kwa mafelong a batho ba dirang mefuta eo ya dilo tsa boeleele mo go one. Pontsho e nngwe ke eno e e dirisang CSS le XPath mmogo. E bontsha se se diragalang fa re dirisa khoutu go tsamaisa XPath mo noutu ya bokao e e seng noutu ya tokomane. Bona css ya Pen le xpath mmogo [e e kgaogantsweng] ke Bryan Rasmussen. Potso ya CSS ke .diathikele tse di amanang a, e e tsayang dielemente tse pedi tsa a mo div e e abetsweng setlhopha sa .diathikele tse di amanang. Morago ga moo ke dipotso tse tharo tse di “bosula”, ke gore, dipotso tse di sa direng se re batlang gore di se dire fa di taboga ka dielemente tseno jaaka noutu ya bokao. Nka go tlhalosetsa gore ke eng fa ba itshwara ka tsela e e farologaneng le e o ka e lebelelang. Dipotso tse tharo tse di sa siamang tse go buiwang ka tsone ke:

//text(): E busetsa mafoko otlhe mo tokomaneng. //a/text(): E busetsa mafoko otlhe mo teng ga dikgokagano mo tokomaneng. ./a/sekwalwa(): Ga e busetse dipholo dipe.

Lebaka la dipholo tse ke gore fa bokao jwa gago e le dielemente tse di busitsweng go tswa mo potsong ya CSS, // e tsamaya kgatlhanong le tokomane yotlhe. Se ke maatla a XPath; CSS e ka se tswe mo noutu go ya kwa godimo ga mogologolwane mme morago ga moo go ya kwa go ngwana wa mogologolwane yoo, mme ya fologela kwa setlogolwaneng sa ngwana wa kwa gae. Mme XPath e ka kgona. Go sa le jalo, ./ e botsa bana ba noutu ya ga jaana, moo lerothodi (.) le emelang noutu ya ga jaana, mme selashe sa kwa pele (/) se emela go ya kwa noutu nngwe ya ngwana — gore a ke tshwano, elemente, kgotsa sekwalwa se laolwa ke karolo e e latelang ya tsela. Mme ga go na ngwana elemente e e tlhophilweng ke potso ya CSS, ka jalo potso eo le yone ga e busetse sepe. Go na le dipotso di le tharo tse di molemo mo pontshong eo ya bofelo:

.//mokwalo(), ./mokwalo(), tlwaetsa-sebaka (. / sekwalwa ()).

Potso ya normalize-space e bontsha tiriso ya tiro ya XPath, mme gape e baakanya bothata jo bo akareditsweng mo dipotsong tse dingwe. HTML e rulagantswe jaana:

2018/04/mokgweetsi-webosaete wa seleniamo wa go dira diteko tsa dikarolo Go Itirisa Teko ya Dikarolo tsa Gago ka Mokgweetsi wa Webo wa Selenium

Patlisiso e busetsa phepo ya mola kwa tshimologong le kwa bokhutlong jwa noutu ya mafoko,mme tlwaetsa-sebaka se tlosa sena. Go dirisa tiro nngwe le nngwe ya XPath e e busetsang sengwe se sele kwa ntle ga boolean e e nang le XPath ya tsenyo e dira mo ditirong tse dingwe. Pontsho e e latelang e bontsha dikai di le mmalwa: Bona dikai tsa ditiro tsa Pen xpath [tse di kgaogantsweng] ke Bryan Rasmussen. Sekai sa ntlha se bontsha bothata jo o tshwanetseng go bo ela tlhoko. Ka tlhamalalo, khoutu e e latelang:

tokomane.potsoXDitsela ("mogala-potlana-morago ga (//a/@href, 'https://')");

...e busetsa mogala o le mongwe:

2018/04/mokgweetsi-webosaete wa go tlhatlhoba-dikarolo/"

Go a utlwala, a ga go jalo? Ditiro tse ga di busetse ditlhopha mme go na le moo di busetsa megala e le nngwe kgotsa dinomoro tse di le nosi. Go dirisa tiro gongwe le gongwe ka dipholo tse dintsi go busetsa fela dipholo tsa ntlha. Dipholo tsa bobedi di bontsha se tota re se batlang:

tokomane.potsoCSSSditlhophi ("a").potsoXDitsela ("mogala-potlana-morago ga (./@href, 'https://')");

E e busetsang thulaganyo ya megala e mebedi:

["Dipholo tsa teko-e e itirisang di tokafatsa-phitlhelelo/"]

Ditiro tsa XPath di ka tsenngwa fela jaaka ditiro mo JavaScript. Ka jalo, fa re itse popego ya URL ya Smashing Magazine, re ka dira se se latelang (go kgothalediwa go dirisa ditlhaka tsa thempoleite): `ranola( mogalapotlana( mogalapotlana-morago ga (./@href, ‘www.makasine o o thubang.com/’) ,9), '/','')`

Se se nna se raraane thata mo e leng gore se tlhoka ditshwaelo tse di tlhalosang se se se dirang: tsaya URL yotlhe go tswa mo tshwanong ya href morago ga www.smashingmagazine.com/, tlosa ditlhaka tsa ntlha di le robongwe, o bo o ranola tlhaka ya slash ya kwa pele (/) go nna sepe gore o tle o tlose bokhutlo jwa slash jwa. Thulaganyo e e tlhagelelang:

["mokgweetsi-wa-webosaete wa go dira diteko tsa ditiriso","dipholo tsa teko-e e itirisang di tokafatsa-go kgona go fitlhelelwa"]

Dikgetse tse dingwe tsa Tiriso ya XPath XPath e ka phatsima tota mo ditlhatlhobong. Lebaka ga le thata go le bona, ka XPath e ka dirisiwa go bona elemente nngwe le nngwe mo DOM, go tswa mo maemong ape fela mo DOM, fa CSS e ka se kgone. O ka se ikaege ka ditlhopha tsa CSS tse di nnang di tlhomama mo ditsamaisong tse dintsi tsa segompieno tsa go aga, mme ka XPath, re kgona go dira ditshwano tse di nonofileng thata tsa gore diteng tsa sekwalwa sa elemente ke eng, go sa kgathalesege gore popego ya DOM e a fetoga. Go nnile le dipatlisiso ka ga dithekeniki tse di go letlang go dira diteko tsa XPath tse di nonofileng. Ga go na sepe se se maswe go feta go nna le diteko tse di phatlogang le go palelwa fela ka gonne setlhophi sa CSS se sa tlhole se dira ka gonne sengwe se neilwe leina le lešwa kgotsa se tlositswe. XPath e boetse e le kannete e khōlō ka multiple locator tlhotlhomiso. Go na le ditsela tse di fetang bongwe tsa go dirisa dipotso tsa XPath go tshwantshanya elemente. Go ntse fela jalo le ka CSS. Mme dipotso tsa XPath di ka tsenelela mo dilong ka tsela e e lebisitsweng thata e e lekanyetsang se se busediwang, e go letla go bona tshwano e e rileng moo go ka nnang le ditshwano di le mmalwa tse di kgonegang. Ka sekai, re ka dirisa XPath go busetsa elemente e e rileng ya h2 e e mo teng ga div e e latelang div ya ngwana ka bonako e, ka fa letlhakoreng le lengwe, e nang le elemente ya setshwantsho sa ngwana e e nang le tshwano ya data-testID="leader" mo go yone:

o seka wa bona setlhogo se

Le wena o se ka wa bona setlhogo se

Setlhogo sa setshwantsho sa moeteledipele

Potso ke eno: tokomane.ditselaX tsa dipotso(` //kgaoganya[ yo o latelang::div[1] /img[@ID ya teko ya tshedimosetso='moeteledipele'] ] /h2/ sekwalwa() `);

A re latlheleng pontsho go bona gore seo sotlhe se kopana jang: Bona Potso ya H2 ya Pene e e Raraaneng [e e kgaogantsweng] ke Bryan Rasmussen. Ka jalo, ee. Go na le ditsela tse dintsi tse di kgonegang go ya kwa elementeng epe fela mo tekong o dirisa XPath. Go tlosiwa ga XSLT 1.0 Ke umakile go sa le gale gore setlhopha sa Chrome se rulaganya go tlosa tshegetso ya XSLT 1.0 mo sebatling. Seo se botlhokwa ka gonne XSLT 1.0 e dirisa diporokeramo tse di tlhomang mogopolo mo XML go fetola ditokomane tse, ka fa letlhakoreng le lengwe, di ikaegileng ka XPath 1.0, e leng se se fitlhelwang mo dibatlising di le dintsi. Fa seo se direga, re tla latlhegelwa ke karolo ya konokono ya XPath. Mme ka ntlha ya gore XPath e tota e siametse go kwala diteko, ke fitlhela go sa kgonagale gore XPath ka kakaretso e tla nyelela mo nakong e khutshwane. Seo se builwe, ke lemogile gore batho ba kgatlhegela karolo fa e tsewa. Mme seo ke boammaaruri mo kgannyeng ya XSLT 1.0 e e nyatsegang. Go na le motlotlo otlhe o o diragalang kwa Hacker News o o tletseng ka dingangisano kgatlhanong le go nyatsega. Poso ka boyona ke sekai se segolo sa go tlhama letlhomeso la go kwala mo di-blog ka XSLT. Wenae ka bala puisano ka bowena, empa e kena ka hore na JavaScript e ka sebediswa jwang e le shim bakeng sa XLST ho sebetsana le mefuta eo ya dinyewe. Gape ke bone dikakantsho tsa gore dibatli di tshwanetse go dirisa SaxonJS, e e leng boemakepe jwa dienjene tsa JavaScript tsa Saxon XSLT, XQUERY, le XPath. Eo ke kgopolo e e kgatlhang, segolobogolo jaaka fa Saxon-JS e dirisa mofuta wa ga jaana wa ditlhaloso tseno, fa go se na sebatli se se dirisang mofuta ope wa XPath kgotsa XSLT go feta 1.0, mme ga go na sepe se se dirisang XQuery. Ke ne ka ikgolaganya le Norm Tovey-Walsh kwa Saxonica, e leng khamphani e e neng e dira SaxonJS le diphetolelo tse dingwe tsa enjene ya Saxon. O ne a re: “Fa morekisi ope wa dibatli a ne a kgatlhegela go dirisa SaxonJS jaaka tshimologo ya go kopanya dithekenoloji tsa segompieno tsa XML mo sebatling, re ne re tla itumelela go tlotla le ene ka gone.”— Norm Tovey-Walsh

Mme gape o ne a oketsa jaana: "Ke tla gakgamala thata fa mongwe a ka akanya gore go tsaya SaxonJS ka sebopego sa yone sa ga jaana le go e latlhela mo kagong ya sebatli e sa fetolwa e tla bo e le tsela e e siameng thata. Morekisi wa sebatli, ka tlholego ya gore ba aga sebatli, o ne a ka atamela go kopanngwa ga yone ka tsela e e tseneletseng thata go feta ka fa re ka kgonang ka teng ‘go tswa kwa ntle ga Tovesh’-.”

Go botlhokwa go ela tlhoko gore ditshwaelo tsa ga Tovey-Walsh di tlile mo e ka nnang beke pele ga kitsiso ya go nyatsa XSLT. Bokhutlo Ke ne ke kgona go tswelela ke tswelela. Mme ke solofela gore seno se bontshitse maatla a XPath mme se go neile dikai tse dintsi tse di bontshang kafa o ka e dirisang ka gone go fitlhelela dilo tse dikgolo. Ke sekai se se siameng thata sa thekenoloji ya bogologolo mo mokong wa sebatli e e sa ntseng e na le mosola o montsi gompieno, le fa o sa itse gore e teng kgotsa o sa akanyetsa go e fitlhelela. Puiso e e Tswelelang

“Go Ntlafatsa Boitsetsepelo jwa Diteko tsa Webo tse di Itirisang ka Puo ya Tlhago” (Laeborari ya Dijithale ya ACM) ka Maroun Ayli, Youssef Bakouny, Nader Jalloul, le Rima KilanySetlhogo seno se tlamela ka dikai tse dintsi tsa XPath tsa go kwala diteko tse di nonofileng. XPath (MDN)Leno ke lefelo le le siameng thata la go simolola fa o batla tlhaloso ya setegeniki e e tlhalosang ka botlalo kafa XPath e dirang ka gone. XPath Tutorial (ZVON)Ke bone thuto eno e thusa thata mo go ithuteng ga me, ka ntlha ya dikai tse dintsi le ditlhaloso tse di tlhapileng. XPatherSediriswa se se dirisanang se go letla go dira ka tlhamalalo le khoutu.

You May Also Like

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