Anọwo m na mmepe n'ihu ruo ogologo oge iji hụ ihe na-emekarị n'ime afọ: ndị na-eto eto na-arụ ọrụ na usoro ọhụrụ nke mmemme na-aghọtaghị ihe gbasara akụkọ ihe mere eme nke ya. Ọ bụ, n'ezie, n'ụzọ zuru oke nghọta na-amaghị ihe. Weebụ bụ ebe buru ibu nke nwere ụdị nka na ọpụrụiche dị iche iche, na anyị anaghị ama mgbe niile ihe anyị na-amaghị. Ịmụ na ngalaba a bụ njem na-aga n'ihu karịa ihe na-eme otu ugboro na njedebe. Isi okwu: Otu onye nọ n'otu m jụrụ ma ọ ga-ekwe omume ịma ma ndị ọrụ gagharịa na otu taabụ dị na UI. Atụrụ m aka na mmemme mbupu nke Javascript. Mana ndị na-emeri nke a tupu ha ama na nke a ga-ekwe omume n'ihi na ejirila ọkwa mara banyere data echekwara na saịtị ndị ọzọ, nke tupu ebugo ya bụ ihe eji eme ihe. Akọwakwara m ibe ahụ Zoo na visibiliti Gbanwee mmemme nye onye ọrụ ibe m ka ọ dị mma. Olee otú m si mara banyere nke ahụ? N'ihi na ọ malitere n'ọrụ ọzọ, ọ bụghị n'ihi na m gụrụ ya mgbe m na-amụ Javascript na mbụ. Nke bụ eziokwu bụ na usoro n'ihu n'ihu nke oge a na-eguzo n'ubu nke ndị dike teknụzụ bu ya ụzọ. Ha na-eme ka omume mmepe na-adịghị ahụkebe, na-abụkarị maka ahụmịhe onye nrụpụta ka mma nke na-ebelata, ma ọ bụ na-ewepụ, mkpa ịmara ma ọ bụ metụ ihe ọdịnala dị mkpa dị n'ihu ọgwụgwụ echiche onye ọ bụla nwere ike ịma. Tụlee ihe atụ CSS Object Model (CSSOM). Ị nwere ike ịtụ anya na onye ọ bụla na-arụ ọrụ na CSS na Javascript nwere ụyọkọ aka na ahụmahụ CSSOM, mana nke ahụ agaghị adị mgbe niile. Enwere ọrụ React maka saịtị e-azụmahịa m rụrụ ọrụ na ebe anyị kwesịrị ibunye mpempe akwụkwọ maka ndị na-eweta ịkwụ ụgwọ ahọpụtara ugbu a. Nsogbu bụ na mpempe akwụkwọ ahụ na-ebunye na ibe ọ bụla mgbe ọ dị naanị mkpa na ibe. Onye nrụpụta ọrụ ka ọ mee ka nke a mee, ebubeghị ụdị akwụkwọ ọ bụla n'ike. Ọzọ, nke a bụ ihe kwere nghọta mgbe React wepụrụ usoro ọdịnala ị nwere ike nwetagoro. CSSOM nwere ike ọ bụghị ihe ịchọrọ na ọrụ gị kwa ụbọchị. Ma o yikarịrị ka ọ ga-adị mkpa ka gị na ya kparịta ụka n'oge ụfọdụ, ọbụlagodi n'otu oge. Ahụmahụ ndị a kpaliri m ide akụkọ a. Enwere ọtụtụ atụmatụ webụ na teknụzụ dị n'ime ọhịa nke ị nwere ike imetụghị aka ozugbo n'ọrụ gị kwa ụbọchị. Ikekwe ị dị ọhụrụ na mmepe weebụ ma ị maghị ha n'ihi na ị na-abanye na abstraction nke otu usoro nke na-achọghị ka ị mara ya nke ọma, ma ọ bụ ọbụna ma ọlị. Ana m ekwu kpọmkwem maka XML, nke ọtụtụ n'ime anyị maara na ọ bụ asụsụ oge ochie na-abụghị nke HTML. M na-ewelite nke a n'ihi mkparịta ụka WHATWG na nso nso a na-atụ aro na ekwesịrị iwepụ akụkụ dị mkpa nke nchịkọta XML mara dị ka mmemme XSLT na ihe nchọgharị. Nke a bụ ụdị nke ochie, teknụzụ dị adị anyị nwere kemgbe ọtụtụ afọ enwere ike iji mee ihe bara uru dịka ọnọdụ CSSOM ndị otu m nọ. Ị na-arụ ọrụ na XSLT mbụ? Ka anyị hụ ma anyị dabere na teknụzụ ochie a ma tinye atụmatụ ya na mpụga XML iji dozie nsogbu ụwa taa. XPath: Central API Teknụzụ XML kachasị mkpa nke nwere ike ịbụ ihe bara uru na mpụga nke anya XML kwụ ọtọ bụ XPath, asụsụ ajụjụ na-enye gị ohere ịchọta ọnụ ma ọ bụ àgwà ọ bụla na osisi akara nwere otu ihe mgbọrọgwụ. Enwere m mmetụta nke onwe maka XSLT, mana nke ahụ dabere na XPath, na ịhụnanya onwe onye ga-ewepụrịrị na ọkwa dị mkpa. Arụmụka maka iwepụ XSLT anaghị ekwu banyere XPath, yabụ echere m na a ka na-ahapụ ya. Nke ahụ dị mma n'ihi na XPath bụ API etiti na nke kachasị mkpa na teknụzụ teknụzụ a, ọkachasị mgbe ị na-achọ ihe ị ga-eji na mpụga ojiji XML nkịtị. Ọ dị mkpa n'ihi na, ebe enwere ike iji ndị na-ahọpụta CSS chọta ọtụtụ ihe dị na ibe gị, ha enweghị ike ịchọta ha niile. Ọzọkwa, enweghị ike iji ndị na-ahọpụta CSS chọta ihe dabere na ọnọdụ ya ugbu a na DOM. XPath nwere ike. Ugbu a, ụfọdụ n'ime unu na-agụ nke a nwere ike ịma XPath, ma ụfọdụ nwere ike ọ gaghị ama. XPath bụ nnukwu mpaghara teknụzụ mara mma, enweghị m ike ịkụzi ihe niile dị mkpa ma gosikwa gị ihe dị mma iji mee ya n'otu akụkọ dị ka nke a. Agbalịrị m ide akụkọ ahụ n'ezie, mana nkezi mbipụta Smashing Magazine anaghị agafe okwu 5,000. M na-ama na ihe karịrịOkwu 2,000 ka ọ na-agafe na isi mmalite. Ya mere, m ga-amalite ime ihe dị mma na XPath ma nye gị ụfọdụ njikọ ị nwere ike iji maka isi ihe ma ọ bụrụ na ịchọta ihe a na-adọrọ mmasị. Na-ejikọta XPath & CSS XPath nwere ike ime ọtụtụ ihe ndị CSS na-ahọrọ enweghị ike mgbe ha na-ajụ ihe. Mana ndị na-ahọpụta CSS nwekwara ike ime ihe ole na ole XPath enweghị ike, ya bụ, ihe ndị na-ajụ ajụjụ site na aha klaasị.
CSS XPath .Klas /*[nwere (@class, "myClass")]
N'ihe atụ a, CSS na-ajụ ihe ndị nwere aha klas .myClass. Ka ọ dị ugbu a, ihe atụ XPath na-ajụ ihe ndị nwere klaasị njirimara nwere eriri "myClass". N'ikwu ya n'ụzọ ọzọ, ọ na-ahọrọ ihe ndị nwere myClass na àgwà ọ bụla, gụnyere ihe ndị nwere aha klas .myClass - yana ihe ndị nwere "myClass" na eriri, dị ka .myClass2. XPath ka sara mbara n'echiche ahụ. Yabụ, mba. Anaghị m atụ aro na anyị kwesịrị ịchụpụ CSS wee malite ịhọrọ ihe niile site na XPath. Nke ahụ abụghị isi ihe. Isi ihe bụ na XPath nwere ike ime ihe ndị CSS enweghị ike ma nwee ike ịba uru nke ukwuu, n'agbanyeghị na ọ bụ teknụzụ ochie na nchịkọta ihe nchọgharị ma ọ nwere ike ọ gaghị adị ka ihe doro anya na nlele mbụ. Ka anyị jiri teknụzụ abụọ ahụ ọnụ ọ bụghị naanị n'ihi na anyị nwere ike, mana n'ihi na anyị ga-amụta ihe gbasara XPath na usoro a, na-eme ka ọ bụrụ ngwaọrụ ọzọ na ngwugwu gị - nke ị nwere ike ọ gaghị ama na ọ nọ ebe ahụ kemgbe! Nsogbu a bụ na usoro JavaScript. nyochaa usoro na usoro nhọpụta ajụjụ dị iche iche anyị ji CSS API maka Javascript ekwekọghị. Emeela m API ajụjụ dakọtara dakọtara ka anyị malite, n'agbanyeghị n'eziokwu, etinyeghị m ọtụtụ echiche na ya ebe ọ bụ ọpụpụ na ihe anyị na-eme ebe a. Nke a bụ ọmụmaatụ ọrụ dị mfe nke onye nrụpụta ajụjụ enwere ike iji: Hụ pen queryXPath [ndụra] nke Bryan Rasmussen. Etinyere m ụzọ abụọ na ihe akwụkwọ ahụ: queryCSSSelectors (nke bụ nnoo ajụjụSelectorAll) na queryXPaths. Ha abụọ weghachitere ihe nsonaazụ ajụjụ:
{ ajụjụ Ụdị: ọnụ | eriri | nọmba | boolean, nsonaazụ: ihe ọ bụla[] // html, ihe xml, eriri, ọnụọgụ, booleans, queryCSSSelectors: (ajụjụ: eriri, emezi: boolean) => ajụjụ nsonaazụ, queryXpaths: (ajụjụ: eriri, emezi: boolean) => ajụjụ nsonaazụ }
Ndị na-ajụ ajụjụCSSSelectors na queryXpaths na-agba ajụjụ ị na-enye ha n'elu ihe ndị dị na nhazi nsonazụ, ọ bụrụhaala na nrụpụta nsonaazụ bụ ụdị ọnụ, n'ezie. Ma ọ bụghị ya, ọ ga-eweghachite ajụjụ Result nwere usoro efu yana ụdị ọnụ. Ọ bụrụ na edobere akụrụngwa mmezi ahụ ka ọ bụrụ eziokwu, ọrụ ndị a ga-agbanwe nsonaazụ ajụjụ nke ha. N'ọnọdụ ọ bụla, a ghaghị iji nke a mee ihe na gburugburu ebe mmepụta ihe. Ana m eme ya otu a naanị iji gosipụta mmetụta dị iche iche nke iji API ajụjụ abụọ ahụ ọnụ. Ajụjụ atụ Achọrọ m igosi ihe atụ ole na ole nke ajụjụ XPath dị iche iche na-egosi ụfọdụ ihe dị ike ha nwere ike ime yana otu esi eji ha mee ihe n'ọnọdụ ndị ọzọ. Ihe atụ nke mbụ bụ //li/text(). Nke a na-ajụ ihe niile ma weghachi ọnụ ederede ha. Yabụ, ọ bụrụ na anyị ga-ajụ HTML ndị a:
- otu
- abuo
- atọ
…nke a bụ ihe eweghachiri:
{"queryType":"xpathEvaluate"," results":["otu","abụọ","atọ"],"resultType":"string"}
N'ikwu ya n'ụzọ ọzọ, anyị na-enweta usoro ndị a: ["otu","abụọ","atọ"]. Dị ka ọ na-adịkarị, ị ga-ajụ ajụjụ maka ihe ndị ahụ ka ị nweta nke ahụ, gbanwee nsonaazụ ajụjụ ahụ ka ọ bụrụ nhazi, mapụta nhazi ahụ, wee weghachite ọnụ ederede nke mmewere ọ bụla. Mana anyị nwere ike ime nke ahụ nkenke na XPath: document.queryXPaths("//li/text()").arụpụta.
Rịba ama na ụzọ isi nweta ọnụ ederede bụ iji ederede(), nke dị ka mbinye aka ọrụ - ma ọ dị. Ọ na-eweghachite ọnụ ederede nke mmewere. N'ọmụmaatụ anyị, e nwere ihe atọ dị na akara, nke ọ bụla nwere ederede ("otu", "abụọ", na "atọ").
Ka anyị lee otu ihe atụ ọzọ nke ajụjụ ederede. Were ya na nke a bụ akara anyị:
Ka anyị dee ajụjụ weghachi uru njirimara href: document.queryXPaths("//a[ederede () = 'Banye']/@href"). arụpụta.
Nke a bụ ajụjụ XPath na akwụkwọ dị ugbu a, dịka ọmụmaatụ ikpeazụ, mana oge a anyị na-eweghachite njirimara href nke njikọ (ihe mmewere) nke nwere ederede "Banye". N'ezie laghachiriNsonaazụ bụ ["/login.html"]. Nchịkọta Ọrụ XPath Enwere ọtụtụ ọrụ XPath, ma eleghị anya ị maghị ha. Enwere ọtụtụ, echere m, ndị kwesịrị ịma gbasara ha, gụnyere ndị a:
amalite-na Ọ bụrụ na ederede na-amalite na ụfọdụ ihe atụ ederede ọzọ, malite-na(@href, 'http:') ga-alaghachi eziokwu ma ọ bụrụ na àgwà href malite na http:. nwere Ọ bụrụ na ederede nwere ihe atụ ederede ọzọ, nwere (ederede(), "Mgbasa na-agbaji" na-alaghachi eziokwu ma ọ bụrụ na ọnụ ederede nwere okwu ndị a "Smashing Magazine" na ya ebe ọ bụla. Count weghachite ọnụ ọgụgụ nke egwuregwu ole enwere na ajụjụ. Dịka ọmụmaatụ, gụọ (//* [starts-with(@href, 'http:']) na-eweghachite ọnụ ọgụgụ nke njikọ ole dị na oghere gburugburu nwere ihe nwere njirimara href nwere ederede na-amalite na http:. substringNa-arụ ọrụ dị ka obere eriri Javascript, belụsọ ị gafere eriri dị ka arụmụka. Dịka ọmụmaatụ, eriri obere ("ederede m", 2, 4) weghachiri "y t". obere eriri-tupu na-eweghachi akụkụ nke eriri n'ihu eriri ọzọ. Dịka ọmụmaatụ, ntinye-n'ihu ("ederede m", "") weghachiri "m". N'otu aka ahụ, eriri-n'ihu ("hi","bye") na-eweghachi eriri efu. obere eriri-mgbe Weghachite akụkụ nke eriri mgbe eriri ọzọ gasịrị. Dịka ọmụmaatụ, ntinye-mgbe ("ederede m", "") na-eweghachite "ederede". N'otu aka ahụ, obere eriri-mgbe ("hi","bye") na-eweghachi eriri efu. normalize-space weghachi eriri arụmụka ahụ na oghere ọcha emebere ya site n'iwepụ ụzọ na n'azụ oghere ọcha yana dochie usoro mkpụrụedemede ọcha site na otu oghere. ọ naghị eweghachi boolean eziokwu ma ọ bụrụ na arụmụka ahụ bụ ụgha, ma ọ bụghị ụgha. ezi na-alaghachi boolean eziokwu. ụgha na-alaghachi boolean ụgha. concat Otu ihe dị ka Javascript concat, belụsọ na ị naghị agba ya dị ka usoro na eriri. Kama, ị na-etinye eriri niile ịchọrọ ijikọ. string-lengthNke a abụghị otu ihe ogologo eriri Javascript, kama ọ na-eweghachi ogologo eriri e nyere ya dị ka arụmụka. Ntụgharị asụsụ a na-ewe eriri wee gbanwee arụmụka nke abụọ gaa na arụmụka nke atọ. Dịka ọmụmaatụ, ịtụgharị ("abcdef", "abc", "XYZ") pụta XYZdef.
Ewezuga ọrụ XPath ndị a, enwere ọtụtụ ọrụ ndị ọzọ na-arụ ọrụ dị ka ndị otu JavaScript ha - ma ọ bụ ndị mmekọ na asụsụ mmemme ọ bụla - na ị ga-ahụkwa uru, dị ka ala, uko ụlọ, okirikiri, nchikota, na ihe ndị ọzọ. Ihe ngosi ngosi na-egosi nke ọ bụla n'ime ọrụ ndị a: Hụ ọrụ ọnụọgụgụ Pen XPath [nke gbachiri] nke Bryan Rasmussen. Rịba ama na, dị ka ọtụtụ ọrụ nhịahụ eriri, ọtụtụ n'ime ọnụọgụgụ na-ewere otu ntinye. Nke a bụ, n'ezie, n'ihi na ekwesịrị iji ha mee ihe maka ịjụ ajụjụ, dịka n'ihe atụ XPath ikpeazụ: //li[ala (ederede ()) > 250]/@val
Ọ bụrụ na ị na-eji ha, dị ka ọtụtụ n'ime ihe atụ na-eme, ị ga-ejedebe na-agba ọsọ ya na mbụ ọnụ nke dabara na ụzọ. Enwekwara ụfọdụ ụdị ọrụ ntụgharị ị ga-ezere n'ihi na Javascript enweelarị nsogbu ntụgharị ụdị nke ya. Mana enwere ike ịnwe oge mgbe ịchọrọ ịtụgharị eriri na nọmba iji lelee ya megide nọmba ọzọ. Ọrụ na-edozi ụdị ihe bụ boolean, nọmba, eriri, na ọnụ. Ndị a bụ ụdị data XPath dị mkpa. Ma dịka ị nwere ike iche n'echiche, enwere ike iji ọtụtụ ọrụ ndị a na ụdị data nke na-abụghị ọnụ DOM. Dịka ọmụmaatụ, obere eriri-mgbe were eriri dịka anyị kpuchiri, mana ọ nwere ike ịbụ eriri sitere na njirimara href. Ọ nwekwara ike ịbụ naanị eriri:
const testSubstringAfter = document.queryXPaths("substring-after('hello ụwa','')");
N'ụzọ doro anya, ihe atụ a ga-enyeghachi anyị nsonaazụ n'usoro dị ka ["ụwa"]. Iji gosi nke a n'omume, ejiri m ọrụ megide ihe ndị na-abụghị ọnụ DOM: Hụ pen queryXPath [ndụra] nke Bryan Rasmussen. Ị ga-arịba ama akụkụ dị ịtụnanya nke ọrụ ntụgharị, nke bụ na ọ bụrụ na ị nwere agwa na arụmụka nke abụọ (ya bụ, ndepụta mkpụrụedemede ịchọrọ ịtụgharị) na ọ dịghị agwa dabara adaba ịsụgharị ya, a ga-ewepụ àgwà ahụ na mmepụta. Ya mere, nke a:
Translation('Ndewo, Aha m bụ Inigo Montoya, ị gburu nna m, jikere ịnwụ','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','*')
... nsonaazụ na eriri, gụnyere oghere: ["***"]
Nke a pụtara na a na-asụgharị mkpụrụedemede “a” ka ọ bụrụ akara mmuke (*), mana agwaghị agwa ọ bụla nke na-enweghị ntụgharị asụsụ enyere eriri ebumnobi ya kpamkpam. Ebe ọcha bụ naanị ihe anyị hapụrụn'etiti mkpụrụedemede “a” atụgharịrị. Ọzọkwa, ajụjụ a:
translation('Ndewo, Aha m bụ Inigo Montoya, ị gburu nna m, jikere ịnwụ','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','**************************************)))
… enweghị nsogbu wee wepụta nsonaazụ dị ka nke a:
"***** ** **** ***********************
Ọ nwere ike ime gị na ọ nweghị ụzọ dị mfe na Javascript iji mee kpọmkwem ihe ọrụ ntụgharị XPath na-eme, ọ bụ ezie na maka ọtụtụ ojiji, dochie All na okwu mgbe niile nwere ike ijikwa ya. Ị nwere ike iji otu ụzọ m gosipụtara, mana nke ahụ dị mma ma ọ bụrụ na naanị ihe ịchọrọ bụ ịtụgharị uche na eriri. Ihe ngosi a na-ekpuchi ọrụ ntụgharị asụsụ XPath iji nye ụdị Javascript: Hụ ọrụ ntụgharị asụsụ Pen [nke agbadoro] nke Bryan Rasmussen. Ebee ka ị ga-eji ihe dị otú a? Tụlee izo ya ezo Siza Cipher nwere nkwụghachi ebe atọ (dịka ọmụmaatụ, izo ya ezo nke dị n'elu site na 48 BC):
Tụgharịa ("Caesar na-eme atụmatụ ịgafe Rubicon!", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", "XYZABCDEFGHIJKLMNOPQRSTUVWxyzabcdefghijklmnopqrstuvw")
Ederede ntinye "Caesar na-eme atụmatụ ịgafe Rubicon!" rụpụtara "Zxbpxo fp mixkkfkd ql zolp qeb Oryfzlk!" Iji nye atụ ọsọ ọsọ ọzọ nke ohere dị iche iche, emere m ọrụ igwe na-ewe ntinye eriri wee jiri ọrụ ntụgharị weghachi ederede, gụnyere mkpụrụedemede niile na-ewere umlauts. Hụ ọrụ Pen metal [nke agbadoro] nke Bryan Rasmussen.
const metal = (str) => { weghachi ntụgharị asụsụ(str, "AOUaou","ÄÖÜäöü"); }
Na, ọ bụrụ na e nyere ederede “Motley Crue laws, rock on dudes!”, laghachi “Mötley Crüe rüles, röck ön düdes!” N'ụzọ doro anya, mmadụ nwere ike ịnweta ụdị parody niile nke ọrụ a. Ọ bụrụ na ọ bụ gị, yabụ akụkọ TVTropes kwesịrị inye gị ọtụtụ mmụọ nsọ. Iji CSS na XPath Cheta isi ihe mere anyị ji jiri CSS selectors yana XPath: CSS na-aghọta nke ọma ihe klas bụ, ebe kacha mma ị nwere ike ime na XPath bụ ntụnyere eriri nke àgwà klas. Nke ahụ ga-arụ ọrụ n'ọtụtụ ọnọdụ. Mana ọ bụrụ na ị ga-abanye n'ọnọdụ ebe, sịnụ, mmadụ kere klas aha ya bụ .primaryLinks na .primaryLinks2 na ị na-eji XPath nweta klas .primaryLinks, mgbe ahụ ị ga-enwe nsogbu. Ọ bụrụhaala na ọ nweghị ihe nzuzu dị otú ahụ, ị nwere ike iji XPath. Ma ọ na-ewute m ịkọ na m rụrụ ọrụ n’ebe ndị mmadụ na-eme ụdị ihe nzuzu ahụ. Nke a bụ ngosi ọzọ na-eji CSS na XPath ọnụ. Ọ na-egosi ihe na-eme mgbe anyị na-eji koodu na-agba ọsọ XPath na ọnụ ala nke na-abụghị ọnụ akwụkwọ. Hụ Pen css na xpath ọnụ [gbarara] nke Bryan Rasmussen. Ajụjụ CSS bụ .relatedarticles a, nke na-ewepụta ihe abụọ ahụ dị na div ekenyere klaasị metụtara. Mgbe nke ahụ gasịrị bụ ajụjụ atọ "ọjọọ" atọ, ya bụ, ajụjụ ndị na-adịghị eme ihe anyị chọrọ ka ha mee mgbe ha na-eji ihe ndị a na-agba ọsọ dị ka oghere gburugburu. Enwere m ike ịkọwa ihe kpatara ha ji eme omume dị iche karịa ka ị tụrụ anya ya. Ajụjụ atọ ọjọọ a na-ajụ bụ:
//text(): weghachite ederede niile dị n'ime akwụkwọ ahụ. //a/text(): weghachite ederede niile n'ime njikọ dị na akwụkwọ ahụ. ./a/text(): Ọ dịghị rịzọlt ga-eweghachi.
Ihe kpatara nsonaazụ ndị a bụ na ọ bụ ezie na ihe gbara gị gburugburu bụ ihe e si na ajụjụ CSS weghachi, // megidere akwụkwọ niile. Nke a bụ ike nke XPath; CSS enweghị ike isi n'ọnụ ụzọ ruo nna nna wee gakwuru nwanne nna nna ahụ, wee gbadakwuru nwa nke nwanne ahụ. Mana XPath nwere ike. Ka ọ dị ugbu a, ./ na-ajụ ụmụaka nke ọnụ ọnụ ugbu a, ebe ntụpọ (.) na-anọchi anya ọnụ ọnụ ugbu a, na slash na-aga n'ihu (/) na-anọchi anya ịga na ụfọdụ nwa ọnụ - ma ọ bụ àgwà, mmewere, ma ọ bụ ederede na-ekpebi akụkụ nke ọzọ nke ụzọ ahụ. Mana onweghị nwa ihe ahọpụtara nke ajụjụ CSS ahọpụtara, yabụ ajụjụ ahụ anaghị eweghachi ihe ọ bụla. Enwere ezigbo ajụjụ atọ na ngosi ikpeazụ ahụ:
.//ederede(), ./ederede(), normalize-ohere(./text()).
Ajuju-ohere normalize na-egosiputa ojiji ọrụ XPath, mana na-edozikwa nsogbu etinyere na ajụjụ ndị ọzọ. A haziri HTML dị ka nke a:
Iji Selenium WebDriver na-eme nnwale njirimara gị
Ajụjụ ahụ weghachiri ndepụta ahịrị na mmalite na njedebe nke ọnụ ederede,na normalize-ohere na-ewepụ nke a. Iji ọrụ XPath ọ bụla na-eweghachi ihe ọzọ karịa boolean nwere ntinye XPath na-emetụta ọrụ ndị ọzọ. Ihe ngosi ngosi a na-egosi ọtụtụ ọmụmaatụ: Hụ ihe atụ Pen xpath ọrụ [ndụra] nke Bryan Rasmussen. Ihe atụ nke mbụ na-egosi nsogbu ị kwesịrị ịkpachara anya. Karịsịa, koodu ndị a:
document.queryXPaths("substring-after(//a/@href,'https://')");
… na-eweghachi otu eriri:
"www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/"
Ọ bụ ezi uche, nri? Ọrụ ndị a anaghị alaghachi n'usoro kama ọ bụ otu eriri ma ọ bụ otu nọmba. Ịrụ ọrụ ahụ n'ebe ọ bụla nwere ọtụtụ nsonaazụ na-eweghachite nsonaazụ mbụ. Nsonaazụ nke abụọ na-egosi ihe anyị chọrọ n'ezie:
document.queryCSSSelectors("a").queryXPaths("substring-after(./@href,'https://')");
Nke na-eweghachite ọtụtụ eriri abụọ:
["www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/,"www.smashingmagazine.com/2022/11/automated-test-results-improve-accessibility/"]
Enwere ike itinye ọrụ XPath dịka ọrụ na Javascript. Yabụ, ọ bụrụ na anyị maara nhazi URL Smashing Magazine, anyị nwere ike ime ihe ndị a (iji ụdị ndebiri akwadoro): 'sụgharịa eriri ala ( substring-mgbe (./@href, 'www.smashingmagazine.com/') ,9), '/','')'
Nke a na-adịwanye mgbagwoju anya ruo n'ókè nke na ọ chọrọ nkọwa na-akọwa ihe ọ na-eme: wepụ URL niile site na àgwà href mgbe www.smashingmagazine.com/, wepụ ihe odide itoolu mbụ, wee tụgharịa slash (/) n'ihu n'ihu ka ọ bụrụ ihe ọ bụla iji wepụ slash na-agwụ agwụ. N'usoro pụta:
["feature-testing-selenium-webdriver", akpaghị aka-ule-results-mmalite-accessibility"]
Ọtụtụ ikpe ojiji XPath XPath nwere ike na-enwu n'ezie na nnwale. Ihe kpatara ya esighi ike ịhụ, ebe enwere ike iji XPath nweta ihe ọ bụla na DOM, site na ọnọdụ ọ bụla na DOM, ebe CSS enweghị ike. Ị nweghị ike ịtụkwasị obi na klaasị CSS ka na-agbanwe agbanwe n'ọtụtụ sistemu ewu ọgbara ọhụrụ, mana na XPath, anyị na-enwe ike ịme egwuregwu siri ike karịa ihe ọdịnaya ederede nke mmewere bụ, n'agbanyeghị usoro DOM na-agbanwe agbanwe. Enweela nyocha na usoro na-enye gị ohere ịme ule XPath na-agbanwe agbanwe. Ọ dịghị ihe dị njọ karịa inwe ule na-apụ apụ ma daa naanị n'ihi na onye na-ahọrọ CSS anaghịzi arụ ọrụ n'ihi na e degharịrị aha ma ọ bụ wepụ ihe. XPath dịkwa mma n'ezie na mwepu ebe ọtụtụ. Enwere ihe karịrị otu ụzọ isi jiri ajụjụ XPath kwekọọ na mmewere. Otú ahụ ka ọ dịkwa na CSS. Mana ajụjụ XPath nwere ike ịbanye n'ime ihe n'ụzọ ezubere iche nke na-egbochi ihe eweghachiri, na-enye gị ohere ịchọta otu egwuregwu ebe enwere ike ịnwe ọtụtụ egwuregwu. Dịka ọmụmaatụ, anyị nwere ike iji XPath weghachi ihe ụfọdụ h2 dị n'ime div nke na-esote nwanne div ozugbo nke, n'aka nke ya, nwere ihe oyiyi nwatakịrị nwere njirimara data-testID = "leader" na ya:
enwetala isi okwu a
Anwetakwala isi akụkọ a
Ihe nkụnye eji isi mee maka onyonyo onye ndu
Nke a bụ ajụjụ: document.queryXPaths(' //div[ nwanne: div[1] /img[@data-testID='leader'] ] /h2/ ederede() `);
Ka anyị tinye na ngosi ka anyị hụ ka ihe niile si agbakọta: Hụ ajụjụ Pen Complex H2 [nke gbadoro ụkwụ] nke Bryan Rasmussen. Yabụ, ee. Enwere ọtụtụ ụzọ enwere ike ịbanye na mmewere ọ bụla na ule iji XPath. XSLT 1.0 Mbelata M kwuru na mbụ na ndị otu Chrome na-ezube iwepụ nkwado XSLT 1.0 na ihe nchọgharị ahụ. Nke ahụ dị mkpa n'ihi na XSLT 1.0 na-eji mmemme lekwasịrị anya XML maka mgbanwe akwụkwọ nke, n'aka nke ya, dabere na XPath 1.0, nke a na-achọta n'ọtụtụ ihe nchọgharị. Mgbe nke ahụ mere, anyị ga-atụfu akụkụ isi nke XPath. Mana n'ihi eziokwu ahụ bụ na XPath dị oke mma maka nyocha ederede, echere m na o yighị ka XPath n'ozuzu ga-apụ n'anya n'oge ọ bụla. Nke ahụ kwuru, achọpụtara m na ndị mmadụ na-enwe mmasị na njirimara mgbe ewepụrụ ya. Ma nke ahụ bụ eziokwu n'ihe gbasara XSLT 1.0 na-emebi emebi. Enwere mkparịta ụka dum na-eme na Akụkọ Hacker jupụtara na arụmụka megide mmebi ahụ. The post n'onwe ya bụ ezigbo ihe atụ nke ịmepụta usoro ịde blọgụ na XSLT. Ịnwere ike gụọ mkparịta ụka ahụ n'onwe gị, mana ọ na-abanye n'ime ka enwere ike iji Javascript mee ihe dị ka shim maka XLST iji dozie ụdị ikpe ndị ahụ. Ahụwokwa m aro na ihe nchọgharị kwesịrị iji SaxonJS, nke bụ ọdụ ụgbọ mmiri Javascript's Saxon XSLT, XQUERY, na XPath engines. Nke ahụ bụ echiche na-adọrọ mmasị, karịsịa ka Saxon-JS na-emejuputa ụdị nkọwa ndị a ugbu a, ebe ọ dịghị ihe nchọgharị na-eme ihe ọ bụla nke XPath ma ọ bụ XSLT karịa 1.0, na ọ dịghị onye na-eme XQuery. Agara m Norm Tovey-Walsh na Saxonica, ụlọ ọrụ dị n'azụ SaxonJS na ụdị ígwè Saxon ndị ọzọ. Ọ sịrị: "Ọ bụrụ na onye ọ bụla na-ere ihe nchọgharị nwere mmasị iwere SaxonJS dị ka mmalite maka ijikọ teknụzụ XML ọgbara ọhụrụ n'ime ihe nchọgharị ahụ, anyị ga-enwe obi ụtọ iso ha kparịta ya." Norm Tovey-Walsh
Mana gbakwunyekwara: "Ọ ga-eju m anya ma ọ bụrụ na onye ọ bụla chere na ị na-ewere SaxonJS n'ụdị dị ugbu a ma tinye ya n'ime ihe nchọgharị ahụ na-agbanwe agbanwe ga-abụ ụzọ kachasị mma. Onye na-ere ihe nchọgharị, site n'okike nke ha na-ewu ihe nchọgharị ahụ, nwere ike ịbịaru nso na ntinye aka na ọkwa dị omimi karịa ka anyị nwere ike 'si n'èzí'." Norm Tovey-Walsh
Ọ dị mma ịmara na okwu Tovey-Walsh bịara ihe dị ka otu izu tupu ọkwa nkwụsị nke XSLT. Mmechi Enwere m ike ịga n'ihu. Mana enwere m olileanya na nke a egosila ike XPath wee nye gị ọtụtụ ihe atụ na-egosi otu esi eji ya nweta nnukwu ihe. Ọ bụ ihe atụ zuru oke nke teknụzụ ochie na nchịkọta ihe nchọgharị ka nwere ọtụtụ uru taa, ọbụlagodi na ị mabeghị na ọ dị adị ma ọ bụ na ọ dịtụghị mgbe ị tụlere iru ya. Ọgụgụ ọzọ
"Ịkwalite Resiliency nke Nnwale Weebụ Automated na Asụsụ Eke" (ACM Digital Library) nke Maroun Ayli, Youssef Bakouny, Nader Jalloul, na Rima Kilany dere isiokwu a na-enye ọtụtụ ihe atụ XPath maka ide ule ndị na-agbanwe agbanwe. XPath (MDN) Nke a bụ ebe magburu onwe ya ịmalite ma ọ bụrụ na ịchọrọ nkọwa ọrụ aka na-akọwa otú XPath si arụ ọrụ. Nkuzi XPath (ZVON) Achọtala m nkuzi a ka ọ bụrụ ihe kacha enye aka na mmụta nke m, n'ihi ọtụtụ ihe atụ na nkọwa doro anya. XPather Ngwá ọrụ mmekọrịta a na-enye gị ohere iji koodu rụọ ọrụ ozugbo.