Ua leva ona ou i ai i le atinaʻe pito i luma e vaʻai ai i se tulaga i le tele o tausaga: o tagata atinaʻe laiti o loʻo galulue ma se faʻataʻitaʻiga fou o polokalame e aunoa ma le malamalama i le tala faasolopito. O le mea moni, e matua malamalama lelei i le le iloa o se mea. O le upega tafaʻilagi o se nofoaga tele tele ma se seti eseese o tomai ma faʻapitoa, ma tatou te le iloa i taimi uma mea tatou te le iloa. O le aʻoaʻoina i lenei matata o se malaga faifaipea nai lo se mea e tupu faʻatasi ma muta. Fa'ata'ita'iga: Na fesili mai se tasi i la'u 'au pe mafai ona ta'u mai pe fa'aoga ese tagata fa'aoga mai se lisi fa'apitoa i le UI. Na ou faʻasino atu le JavaScript's before unloading event. Ae oi latou na faia muamua lenei mea latou te iloa e mafai ona o latou taia i faʻamatalaga e uiga i faʻamatalaga e leʻi faʻasaoina i luga o isi nofoaga, lea aʻo leʻi faʻapipiʻiina o se faʻaoga masani. Na ou faʻasinoina foi le itulauHide ma visibilitySuiga mea na tutupu i laʻu paaga mo se fua lelei. Na faapefea ona ou iloa lena mea? Aua na sau i se isi poloketi, e le ona sa ou suʻesuʻeina i le taimi muamua na aʻoaʻoina ai le JavaScript. O le mea moni o faʻaonaponei faʻaonaponei pito i luma o loʻo tu i luga o tauau o tagata faʻatekonolosi na muamua atu ia i latou. Latou te va'aia fa'ata'ita'iga fa'ata'ita'iga, e masani lava mo se fa'ata'ita'iga sili atu ona lelei e fa'aitiitia, pe fa'ate'aina fo'i, le mana'oga e iloa pe pa'i atu i mea sa masani ona taua i luma o manatu e tatau ona iloa e tagata uma. Mafaufau i le CSS Object Model (CSSOM). Atonu e te faʻamoemoe o soʻo se tasi e galue i le CSS ma le JavaScript e iai le tele o lima-lima CSSOM poto masani, ae e le o taimi uma e tupu ai. Sa i ai se poloketi React mo se 'upega tafaʻilagi e-commerce sa ou galue ai i le mea e manaʻomia ai le utaina o se sitaili mo le tuʻuina atu o totogi ua filifilia nei. O le fa'afitauli o lo'o fa'apipi'i le sitaili i luga o itulau ta'itasi pe a na'o se itulau fa'apitoa e mana'omia. E le'i fa'apipi'iina fa'amalosi e le tagata fa'atonu na fa'atinoina lenei mea. Toe fo'i, e matua malamalama lelei lava pe a fa'ate'a ese e React le aga masani atonu na e ausia. O le CSSOM e le o se mea e te manaʻomia i au galuega i aso uma. Ae e foliga mai e te manaʻomia le fegalegaleai ma ia i se taimi, e oʻo lava i se taimi e tasi. O nei aafiaga na musuia ai au e tusia lenei tusiga. O lo'o i ai le tele o foliga i luga ole laiga ma tekinolosi i le vao e te le mafai ona pa'i sa'o i au galuega i lea aso ma lea aso. Masalo e te fou i le atinaʻeina o upega tafaʻilagi ma e te le o iloa i latou ona o loʻo e faʻaogaina i le faʻaaogaina o se faʻavae faʻapitoa e le manaʻomia ai lou iloa loloto, pe leai foi. O loʻo ou tautala faʻapitoa e uiga i le XML, lea e iloa e le toʻatele oi tatou o se gagana anamua e leʻo matuaʻi ese mai le HTML. O loʻo ou faʻaalia lenei mea ona o talanoaga talu ai nei a le WHATWG o loʻo fautua mai ai o se pusa taua o le faʻapipiʻi XML e taʻua o le XSLT polokalame e tatau ona aveese mai suʻesuʻega. O le ituaiga lava lea o mea tuai, tekinolosi o loʻo i ai na matou maua mo le tele o tausaga e mafai ona faʻaaogaina mo se mea e aoga e pei o le CSSOM tulaga na i ai laʻu 'au. Na e galue muamua ma le XSLT? Sei o tatou vaʻai pe tatou te faʻalagolago tele i lenei tekinolosi tuai ma faʻaogaina ona foliga i fafo atu o le tala o le XML e foia ai faafitauli moni o le lalolagi i aso nei. XPath: O le API Tutotonu O le tekonolosi XML pito sili ona taua atonu e sili ona aoga i fafo atu o se vaaiga XML saʻo o le XPath, o se gagana fesili e mafai ai ona e suʻeina soʻo se node poʻo se uiga i totonu o se laau faʻailoga e tasi le aʻa. E i ai soʻu alofa patino mo XSLT, ae faʻalagolago foi i le XPath, ma o le alofa patino e tatau ona tuʻu ese i le tulaga taua. O le finauga mo le aveeseina o le XSLT e le o taʻua ai XPath, o lea ou te manatu o loʻo faʻatagaina pea. E lelei lena aua o le XPath o le API tutotonu ma sili ona taua i lenei seti o tekinolosi, aemaise lava pe a taumafai e suʻe se mea e faʻaoga i fafo atu o le faʻaogaina masani XML. E taua tele aua, a'o mafai ona fa'aoga tagata filifilia CSS e su'e ai le tele o elemene i lau itulau, e le mafai ona latou mauaina uma. E le gata i lea, e le mafai ona faʻaogaina CSS filifilia e suʻe ai se elemene e faʻatatau i lona tulaga o loʻo iai nei i le DOM. XPath mafai. Ia, o nisi o outou e faitau i lenei mea atonu latou te iloa XPath, ma o nisi atonu e leai. O le XPath o se vaega tele o tekinolosi, ma e le mafai ona ou aʻoaʻoina mea faʻavae uma ma faʻaali atu foi ia te oe mea manaia e fai i totonu o se tusiga e tasi e pei o lenei. Na ou taumafai moni lava e tusi lena tusiga, ae o le averesi o le Smashing Magazine lomiga e le sili atu i le 5,000 upu. Ua ou i ai i le sili atu nai lo2,000 upu a'o na'o le afa o mea fa'avae. O lea la, o le a ou amata faia mea manaia ma XPath ma tuʻuina atu ia te oe ni fesoʻotaʻiga e mafai ona e faʻaogaina mo faʻavae pe afai e te mauaina lenei mea manaia. Tu'ufa'atasi XPath & CSS XPath e mafai ona faia le tele o mea e le mafai e tagata filifilia CSS pe a fesiligia elemene. Ae e mafai foi e tagata filifilia CSS ona faia ni nai mea e le mafai e XPath, o lona uiga, fesili elemene ile igoa ole vasega.
CSS XPath .la'u Vasega /*[o iai(@vasega, "la'u Vasega")]
I lenei fa'ata'ita'iga, o lo'o fesiligia e le CSS elemene o lo'o iai se igoa vasega .myClass. I le taimi nei, o le XPath faʻataʻitaʻiga fesili elemene o loʻo i ai se vasega uiga ma le manoa "myClass". I se isi faaupuga, na te filifilia elemene ma myClass i soʻo se uiga, e aofia ai elemene i le igoa vasega .myClass - faʻapea foʻi ma elemene o loʻo i ai le "myClass" i le manoa, pei o le .myClass2. XPath e lautele atu i lena tulaga. O lea, e leai. Ou te le o fautua atu e tatau ona tatou togi ese CSS ma amata filifili elemene uma e ala ile XPath. E le o le manatu lena. O le manatu o le XPath e mafai ona faia mea e le mafai e le CSS ma e mafai lava ona aoga tele, e ui lava o se tekonolosi tuai i totonu o le upega tafaʻilagi ma atonu e foliga mai e le o manino i le tepa muamua. Sei o tatou faʻaoga faʻatasi tekinolosi e lua e le gata ona tatou te mafaia, ae ona o le a tatou aʻoaʻoina se mea e uiga i le XPath i le faagasologa, ma avea ma se isi meafaigaluega i lau faaputuga - o se tasi e te leʻi iloaina sa i ai iina i le taimi atoa! O le faʻafitauli o le JavaScript's document.evaluate method ma auala eseese e filifili ai fesili matou te faʻaogaina ma le CSS APIs mo JavaScript e le fetaui. Ua ou faia se API fesili talafeagai e amata ai ona matou amataina, e ui lava e moni, ou te leʻi tuʻuina i ai se manatu tele ona o le alu ese mai le mea o loʻo matou faia iinei. O se faʻataʻitaʻiga faigofie faʻataʻitaʻiga o se faʻailoga toe faʻaaogaina: Va'ai i le Pen queryXPath [tu'u] e Bryan Rasmussen. Ua ou faʻaopoopoina ni auala se lua i luga o le meafaitino pepa: queryCSSSelectors (lea e matuaʻi lava querySelectorAll) ma queryXPaths. O nei mea uma e lua e toe faʻafoʻi mai ai se mea o le queryResults:
{ QuryType: nodes | manoa | numera | boolean, i'uga: so'o se [] // elemene html, elemene xml, manoa, numera, booleans, queryCSSSelectors: (fesili: manoa, teuteu: boolean) => fa'ai'uga, queryXpaths: (fesili: manoa, teuteu: boolean) => queryResults }
O galuega a le queryCSSSelectors ma queryXpaths e fa'atautaia le fesili e te tu'uina atu ia i latou i luga o elemene i le fa'asologa o fa'ai'uga, pe a fai o le fa'asologa o fa'ai'uga o ituaiga nodes, ioe. A leai, o le a toe faafoi mai se queryResult ma se laina gaogao ma se ituaiga o nodes. Afai o le teuteuga meatotino ua seti i le moni, o galuega tauave o le a suia a latou lava queryResults. I lalo ole tulaga e le tatau ona faʻaaogaina i se siosiomaga gaosiga. O loʻo ou faia i lenei auala mama e faʻaalia ai le tele o aʻafiaga o le faʻaaogaina o fesili e lua API faʻatasi. Fa'ata'ita'iga Fesili Ou te manaʻo e faʻaalia ni nai faʻataʻitaʻiga o fesili XPath eseese o loʻo faʻaalia ai nisi o mea mamana e mafai ona latou faia ma pe faʻapefea ona faʻaogaina e suitulaga i isi auala. O le faʻataʻitaʻiga muamua o le //li/text(). Ole fesili lea ole li elemene uma ma toe fa'afo'i a latou nodes tusitusiga. O lea la, pe a tatou fesiligia le HTML nei:
- tasi
- lua
- tolu
… o le mea lenei ua toe faafoi mai:
{"queryType":"xpathEvaluate","results":["tasi","lua","tolu"],"resultType":" manoa"}
I se isi faaupuga, matou te maua le faʻasologa o loʻo i lalo: ["tasi","lua","tolu"]. E masani lava, e te fesili mo elemene li ia maua lena mea, liliu le taunuuga o lena fesili i se laina, faʻafanua le laina, ma toe faʻafoʻi le node tusitusiga o elemene taʻitasi. Ae e mafai ona tatou faia lena mea sili atu ma le XPath: document.queryXPaths("//li/text()").iuga.
Manatua o le auala e maua ai se node tusitusiga o le faʻaaogaina lea o tusitusiga (), lea e foliga mai o se saini galuega - ma o lea. E toe fa'afo'i ai le node o se elemene. I la tatou faʻataʻitaʻiga, e tolu elemene li i le faʻailoga, o loʻo i ai uma tusitusiga ("tasi", "lua", ma le "tolu").
Sei o tatou vaʻai i se tasi faʻataʻitaʻiga o se text() fesili. Fa'apea o le matou fa'ailoga lea:
Sei o tatou tusia se fesili e toe faʻafoʻi mai ai le tau o le href: document.queryXPaths("//a[text() = 'Sign In']/@href").iuga.
Ole fesili ole XPath lea ile pepa o lo'o iai nei, pei ole fa'ata'ita'iga mulimuli, ae o le taimi lea tatou te toe fa'afo'i le uiga href o se so'oga (se elemene) o lo'o iai le tusitusiga "Sign In". O le mea moni na toe foi maiO le taunuuga o le ["/login.html"]. XPath Galuega Aotelega E i ai le tele o galuega XPath, ma atonu e te le masani ia i latou. E tele, ou te manatu, e aoga le iloa, e aofia ai mea nei:
amata-ma Afai e amata se tusitusiga i se isi fa'ata'ita'iga fa'apitoa, amata-ma(@href, 'http:') toe fa'amaoni pe a amata se uiga href i le http:. O lo'o i totonu Afai o se tusitusiga o lo'o i ai se isi fa'ata'ita'iga fa'apitoa, o lo'o i ai(text(), "Smashing Magazine") e fa'afo'i moni pe a fai o lo'o i ai i totonu o le node ni upu "Smashing Magazine" i so'o se mea. countE toe fa'afo'i mai le faitau o le aofa'i o fa'atusa i se fesili. Mo se faʻataʻitaʻiga, count(//*[starts-with(@href, 'http:']) toe faʻafoʻi mai le aofaʻi o le tele o soʻotaga i le node o loʻo i ai elemene ma se uiga href o loʻo i ai le tusitusiga e amata i le http:. substringWorks pei JavaScript substring, sei vagana ua e pasia le manoa e fai ma finauga. Mo se faʻataʻitaʻiga, substring("my text", 2, 4) toe faafoi "y t". substring-before Toe fa'afo'i le vaega o le manoa i luma o le isi manoa. Mo se faʻataʻitaʻiga, substing-before("my text", " ") returns "my". E fa'apena fo'i, substring-before("hi","bye") toe fa'afo'i se manoa gaogao. substring-after Toe fa'afo'i le vaega o le manoa i le isi manoa. Mo se faʻataʻitaʻiga, substing-after("my text", " ") returns "text". E fa'apena fo'i, substring-after("hi","bye") toe fa'afo'i se manoa gaogao. normalize-space Toe fa'afo'i le manoa fa'aupuga fa'atasi ma le avanoa papa'e ua fa'avasegaina e ala i le tapeina o le ta'ita'i ma le fa'asolo o avanoa papa'e ma sui fa'asologa o mata'itusi avanoa papa'e ile avanoa e tasi. notReturns se boolean true pe afai e sese le finauga, a leai se sese. trueFa'afo'i le boolean sa'o. falseReturns boolean sese. concatO le mea lava e tasi e pei o le JavaScript concat, sei vagana e te le faʻaaogaina o se metotia i luga o se manoa. Nai lo lena, e te tuʻuina i totonu manoa uma e te manaʻo e faʻapipiʻi. string-lengthE le tutusa lea ma le JavaScript string-length, ae toe faafoi le umi o le manoa o loʻo tuʻuina atu o se finauga. TranslateThis e ave se manoa ma suia le finauga lona lua i le finauga lona tolu. Mo se fa'ata'ita'iga, fa'aliliu("abcdef", "abc", "XYZ") e maua ai le XYZdef.
E ese mai i nei galuega faapitoa a le XPath, o loʻo i ai le tele o isi galuega e tutusa lelei ma a latou JavaScript - poʻo faʻatusa i soʻo se gagana polokalame - atonu e te maua foi le aoga, e pei o le fola, taualuga, lapotopoto, aofaʻi, ma isi. O le fa'ata'ita'iga o lo'o fa'aalia ai nei galuega ta'itasi: Va'ai i le Pen XPath Numerical functions [forked] by Bryan Rasmussen. Manatua, pei o le tele o galuega faʻaogaina manoa, o le tele o numera e ave se mea e tasi. O le mea moni, ona e tatau ona faʻaaogaina mo le fesiligia, pei o le XPath faʻataʻitaʻiga mulimuli: //li[floor(text()) > 250]/@val
Afai e te faʻaaogaina, e pei ona faia e le tele o faʻataʻitaʻiga, o le ae faʻamutaina i luga o le node muamua e fetaui ma le ala. E iai fo'i nisi o galuega fa'aliliu ituaiga e tatau ona e 'alo'ese ona o le JavaScript o lo'o iai ona lava fa'afitauli o le liua. Ae e iai taimi e te manaʻo ai e faaliliu se manoa i se numera ina ia siaki ai i se isi numera. O galuega e setiina ai le ituaiga o mea o le boolean, numera, manoa, ma le node. O fa'amaumauga taua ia XPath. Ma e pei ona e mafaufauina, o le tele o nei galuega e mafai ona faʻaogaina i luga o faʻamaumauga e le o ni nodes DOM. Mo se faʻataʻitaʻiga, substring-after ave se manoa e pei ona uma ona matou ufiufi, ae atonu o le manoa mai se uiga href. E mafai foi ona na o se manoa:
const testSubstringAfter = document.queryXPaths("substring-after('hello world',' ')");
E manino lava, o lenei faʻataʻitaʻiga o le a toe faʻafoʻi mai ia i tatou le faʻasologa o taunuuga e pei o ["lalolagi"]. Ina ia faʻaalia lenei mea i le gaioiga, ua ou faia se itulau faʻataʻitaʻiga e faʻaaoga ai galuega e faasaga i mea e le o DOM nodes: Va'ai i le Pen queryXPath [tu'u] e Bryan Rasmussen. E tatau ona e maitauina le tulaga fa'ate'ia o le galuega fa'aliliu, o lona uiga afai e iai sau tagata i le finauga lona lua (o lona uiga, o le lisi o mata'itusi e te mana'o e fa'aliliuina) ae leai se uiga fa'atusa e fa'aliliu i ai, e aveese lena tagata mai le mea na fai. O lea la, o lenei:
fa'aliliu('Talofa, O lo'u igoa o Inigo Montoya, na e fasiotia lo'u tama, sauni e oti','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','*')
… e maua ai le manoa, e aofia ai avanoa: [" * * ** "]
O lona uiga o le mataitusi “a” o lo'o fa'aliliuina i se fetu (*), ae o isi uiga uma e leai se fa'aliliuga e tu'uina atu i ai le manoa fa'atatau e aveese atoa. O le avanoa pa'epa'e na'o le mea lea ua totoei le va o mataitusi ua faaliliuina “a”. Ona toe fai atu lea o le fesili lenei:
fa'aliliu('Talofa, O lo'u igoa o Inigo Montoya, na e fasiotia lo'u tama, sauni e oti','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','******************************************************')")
…e leai se fa'afitauli ma maua ai se fa'ai'uga e pei o lenei:
"***** ** **** ** ***** ******* *** ****** ** ****** ****** ** ***"
Atonu e taia oe e leai se auala faigofie i le JavaScript e fai tonu ai le galuega fa'aliliu XPath, e ui lava mo le tele o fa'aoga mataupu, suiAll i fa'amatalaga masani e mafai ona taulimaina. E mafai ona e fa'aogaina le auala lava lea e tasi na ou fa'aalia, ae o le mea sili lea pe a na o le pau lava le mea e te mana'o ai o le fa'aliliuina o manoa. Ole fa'ata'ita'iga lea e afifi ai le galuega fa'aliliu a XPath e tu'uina atu ai se fa'amatalaga JavaScript: Va'ai i le galuega fa'aliliu Peni na saunia e Bryan Rasmussen. O fea e te fa'aogaina ai se mea fa'apenei? Mafaufau i le fa'ailoga a Caesar Cipher ma se fa'ailoga e tolu-nofoaga (fa'ata'ita'iga, fa'ailoga pito i luga-o-le-laina mai le 48 T.L.M.):
translate("Ua fuafua Kaisara e sopoia le Rubicon!", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", "XYZABCDEFGHIJKLMNOPQRSTUVWxyzabcdefghijklmnopqrstuvw")
Le tusitusiga faʻapipiʻi "Ua fuafua Kaisara e sopoia le Rubicon!" i'uga i le “Zxbpxo fp mixkkfkd ql zolpp qeb Oryfzlk!” Ina ia tuʻuina atu se isi faʻataʻitaʻiga vave o avanoa eseese, na ou faia se galuega uʻamea e ave ai se manoa faʻaoga ma faʻaoga se galuega faʻaliliu e toe faʻafoʻi ai le tusitusiga, e aofia ai mataitusi uma e ave umlauts. Va'ai i le galuega Peni uamea [gaga] e Bryan Rasmussen.
const metal = (str) => { toe fa'aliliu(str, "AOUaou","ÄÖÜäöü"); }
Ma, afai e tuʻuina atu le tusitusiga "Motley Crue rules, rock on dudes!", toe faʻafoʻi mai le "Mötley Crüe rüles, röck ön düdes!" E manino lava, e mafai e se tasi ona faʻaogaina ituaiga uma o parody o lenei galuega. Afai o oe lena, o lenei TVTropes tusiga e tatau ona tuʻuina atu ia te oe le tele o musumusuga. Faʻaaogaina CSS ma XPath Manatua la matou mafuaaga autu mo le faʻaogaina o CSS filifilia faʻatasi ma XPath: CSS e malamalama lelei i le vasega, ae o le mea sili e mafai ona e faia i le XPath o faʻatusatusaga manoa o le uiga o le vasega. O le a aoga i le tele o tulaga. Ae afai e te alu i se tulaga, fai mai, na faia e se tasi vasega e igoa .primaryLinks ma .primaryLinks2 ma o loʻo e faʻaaogaina le XPath e maua ai le .primaryLinks vasega, ona e ono tulaʻi mai lea i ni faʻafitauli. Afai lava e leai se mea valea faapena, atonu e te faʻaaogaina XPath. Ae ou te faanoanoa e lipoti atu sa ou faigaluega i nofoaga e fai ai e tagata ia ituaiga o mea valea. O le isi faʻataʻitaʻiga faʻaaoga CSS ma XPath faʻatasi. O loʻo faʻaalia ai le mea e tupu pe a matou faʻaogaina le code e faʻatautaia ai le XPath i luga o se node faʻamatalaga e le o le node o le pepa. Va'ai i le Pen css ma le xpath fa'atasi [tu'u] e Bryan Rasmussen. Ole fesili CSS ole .relatedarticles a, lea e aumai ai elemene e lua i totonu o se div ua tofia se vasega .relatedarticles. A maeʻa lena, e tolu fesili "leaga", o lona uiga, o fesili e le faia le mea tatou te mananaʻo latou te faia pe a tamoʻe ma nei elemene e pei o le node context. E mafai ona ou fa'amatalaina pe aisea ua ese ai a latou amio nai lo le mea e te fa'amoemoeina. O fesili leaga e tolu o loʻo fesiligia o:
//text(): Toe faafoi uma tusitusiga i totonu o le pepa. //a/text(): Fa'afo'i uma tusitusiga i totonu o so'oga i totonu o le pepa. ./a/text(): E leai ni fa'ai'uga.
O le mafuaʻaga o nei faʻaiʻuga e ui o lau faʻamatalaga o se elemene na toe faʻafoʻi mai le CSS fesili, // e tetee i le pepa atoa. O le malosi lea o XPath; E le mafai e le CSS ona alu atu mai se node i luga i se tuaa ona sosoo ai lea ma se tei o lena tuaa, ma savali i lalo i se suli o lena tei. Ae mafai e XPath. I le taimi nei, ./ e fesiligia tamaiti o le node o loʻo i ai nei, pe a fai o le togi (.) o loʻo faʻatusalia ai le node o loʻo i ai nei, ma o le slash i luma (/) o loʻo faʻatusalia ai le alu i se node tamaiti - pe o se uiga, elemene, poʻo se tusitusiga e fuafuaina e le isi vaega o le ala. Ae e leai se tamaititi o se elemene na filifilia e le CSS fesili, ma o lena fesili e le toe maua ai se mea. E tolu fesili lelei i lena demo mulimuli:
.//text(), ./text(), normalize-space(./text()).
Ole su'esu'ega masani ole avanoa e fa'aalia ai le fa'aogaina o galuega a le XPath, ae fo'ia ai fo'i se fa'afitauli e aofia ai i isi fesili. O le HTML ua faʻatulagaina e pei o lenei:
Otometi lau Fa'ata'ita'iga Su'ega Fa'atasi ma Selenium WebDriver
O le fesili e toe fa'afo'i ai se fafaga laina i le amataga ma le fa'ai'uga o le node o tusitusiga,ma normalize-avanoa aveese lenei. Fa'aaogā so'o se galuega XPath e toe fa'afo'i mai ai se isi mea nai lo le boolean fa'atasi ai ma se fa'aoga XPath e fa'aoga i isi galuega. Ole fa'ata'ita'iga lea e fa'aalia ai le tele o fa'ata'ita'iga: Va'ai i le Pen xpath galuega fa'ata'ita'iga [fa'alava] saunia e Bryan Rasmussen. O le faʻataʻitaʻiga muamua o loʻo faʻaalia ai se faʻafitauli e tatau ona e mataʻituina. Aemaise lava, o le code lea:
document.queryXPaths("substring-after(//a/@href,'https://')");
… toe faafoi le manoa e tasi:
"www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/"
E talafeagai, a ea? O nei galuega e le toe fa'afo'i fa'asologa ae o manoa tasi po'o numera tasi. O le fa'atinoina o le galuega i so'o se mea e tele fa'ai'uga e toe fa'afo'i mai ai le i'uga muamua. O le faʻaiʻuga lona lua e faʻaalia ai le mea tatou te manaʻo moni ai:
document.queryCSSSelectors("a").queryXPaths("substring-after(./@href,'https://')");
Le mea e toe faʻafoʻi ai se laina o manoa e lua:
["www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/","www.smashingmagazine.com/2022/11/automated-test-results-improve-accessibility/"]
XPath galuega e mafai ona fa'aputu e pei lava o galuega ile JavaScript. O lea la, afai matou te iloa le Smashing Magazine URL structure, e mafai ona matou faia mea nei (faʻaaogaina faʻataʻitaʻiga literals e fautuaina): `faaliliu( so'a vae( substring-after(./@href, 'www.smashingmagazine.com/') ,9), '/','')`
O lea ua fai si lavelave tele i le tulaga e manaʻomia ai faʻamatalaga e faʻamatalaina ai le mea e fai: ave uma le URL mai le href attribute pe a uma le www.smashingmagazine.com/, aveese mataitusi muamua e iva, ona faʻaliliu lea o le slash i luma (/) uiga i le leai o se mea e faʻaumatia ai le faʻaiʻuga i luma slash. Le fa'asologa e maua ai:
["feature-testing-selenium-webdriver","automated-test-reults-improve-accessibility"]
Tele XPath Fa'aoga mataupu XPath e mafai ona matua susulu i suʻega. O le mafuaʻaga e le faigata ona vaʻaia, aua e mafai ona faʻaogaina le XPath e maua ai elemene uma i le DOM, mai soʻo se tulaga i le DOM, ae le mafai e le CSS. E le mafai ona e fa'amoemoe i vasega CSS o lo'o tumau pea i le tele o faiga fa'aonaponei, ae fa'atasi ai ma le XPath, e mafai ona matou faia ni fa'atusatusaga sili atu ona malosi pe o le a le mea o lo'o i ai i totonu o se elemene, tusa lava po'o le a le suiga o le fausaga DOM. Sa i ai suʻesuʻega i metotia e mafai ai ona e faia suʻega XPath faʻamalosi. E leai se mea e sili atu ona leaga nai lo le fa'asolo o su'ega ma fa'aletonu ona ua le toe galue se tagata filifilia CSS ona o se mea ua toe fa'aigoa pe aveese. O le XPath foi e sili ona lelei i le tele o suʻega suʻega. E sili atu ma le tasi le auala e faʻaoga ai fesili XPath e fetaui ma se elemene. E fa'apea fo'i ma le CSS. Ae o fesili XPath e mafai ona suʻeina mea i se auala e sili atu ona faʻamoemoeina e faʻatapulaʻa ai mea e toe faʻafoʻi mai, faʻatagaina oe e suʻe se faʻatusatusaga faʻapitoa e ono tele ai faʻatusatusaga. Mo se faʻataʻitaʻiga, e mafai ona tatou faʻaogaina le XPath e toe faʻafoʻi ai se elemene h2 faʻapitoa o loʻo i totonu o se div e mulimulitaʻi vave i se tei o loʻo i ai, i le isi itu, o loʻo i ai se elemene ata tamaiti ma se faʻamatalaga-testID = "taʻitaʻi" uiga i luga:
aua le maua lenei ulutala
Aua le maua foi le ulutala lenei
O le ulutala mo le ata taitai
Ole fesili lea: document.queryXPaths(` //div[ so'o-tei::div[1] /img[@data-testID='ta'ita'i'] ] /h2/ tusitusiga() `);
Sei o tatou tuʻu i totonu o se faʻataʻitaʻiga e vaʻai pe faʻafefea ona faʻapotopoto uma: Va'ai le Pen Complex H2 Query [tu'u] e Bryan Rasmussen. O lea, ioe. E tele auala e mafai ai i soʻo se elemene i se suʻega e faʻaaoga ai le XPath. XSLT 1.0 Fa'ate'aina Na ou taʻua muamua o le au Chrome o loʻo fuafua e aveese le XSLT 1.0 lagolago mai le masini. E taua tele ona o le XSLT 1.0 faʻaogaina polokalame e taulaʻi XML mo le suiga o pepa, i le isi itu, faʻalagolago i le XPath 1.0, o le mea lea e maua i le tele o suʻesuʻega. A tupu lena mea, o le a tatou leiloa se vaega autu o le XPath. Ae ona o le mea moni o XPath e sili ona lelei mo suʻega tusitusi, ou te iloa e le mafai ona mou atu le XPath atoa i se taimi lata mai. O lena tala, ua ou matauina e fiafia tagata i se vaega pe a aveesea. Ma e mautinoa lava e moni i le tulaga o le XSLT 1.0 ua faʻaumatia. O loʻo i ai se talanoaga atoa o loʻo tupu i luga o le Hacker News e tumu i finauga e faasaga i le faʻaaogaina. O le pou lava ia o se faʻataʻitaʻiga sili o le fatuina o se blogging framework ma XSLT. O oee mafai ona faitau le talanoaga mo oe lava, ae e oʻo atu i le auala e mafai ona faʻaogaina ai le JavaScript e fai ma faʻailoga mo XLST e faʻatautaia ai na ituaiga o mataupu. Ua ou vaʻaia foʻi fautuaga e tatau i tagata suʻesuʻe ona faʻaoga SaxonJS, o se taulaga i le JavaScript's Saxon XSLT, XQUERY, ma XPath afi. O se manatu manaia tele, aemaise lava o le Saxon-JS o loʻo faʻaaogaina le faʻasologa o nei faʻamatalaga, ae e leai se suʻesuʻega e faʻaaogaina soʻo se lomiga o XPath poʻo XSLT i tua atu o le 1.0, ma e leai se mea e faʻaaogaina XQuery. Na ou aapa atu ia Norm Tovey-Walsh i Saxonica, le kamupani i tua atu o SaxonJS ma isi lomiga o le afi Saxon. Sa ia fai mai: "Afai e manaʻo soʻo se tagata faʻatau suʻesuʻe e ave le SaxonJS o se amataga mo le tuʻufaʻatasia o tekonolosi XML faʻaonaponei i totonu o le browser, matou te fiafia e talanoaina ma i latou." - Norm Tovey-Walsh
Ae faaopoopo foi: "Ou te matua ofo lava pe a manatu se tasi o le aveina o SaxonJS i lona tulaga oi ai nei ma tuu i totonu o le masini e le suia o le a avea ma auala sili ona lelei. O se tagata faʻatau oloa, e ala i le natura o le mea moni latou te fausia le browser, e mafai ona faʻalatalata atu i le tuʻufaʻatasia i se tulaga e sili atu le loloto nai lo le mea tatou te mafaia 'mai fafo'. " - Norm Tovey-Walsh
E taua le maitauina o faʻamatalaga a Tovey-Walsh na oʻo mai pe a ma le vaiaso aʻo lumanaʻi le faʻasalalauga o le XSLT. Fa'ai'uga Sa mafai ona ou alu pea lava pea. Ae ou te faʻamoemoe o lenei mea ua faʻaalia ai le mana o XPath ma tuʻuina atu ia te oe le tele o faʻataʻitaʻiga e faʻaalia ai le faʻaaogaina mo le ausiaina o mea sili. O se faʻataʻitaʻiga lelei o tekinolosi tuai i totonu o le upega tafaʻilagi o loʻo i ai pea le tele o aoga i aso nei, e tusa lava pe e te leʻi iloa na i ai pe e te leʻi mafaufau foi e aapa atu i ai. Faitau atili
"Faʻaleleia le Maufetuunaʻi o Suʻega i luga ole Initaneti ma le Gagana Faanatura" (ACM Digital Library) saunia e Maroun Ayli, Youssef Bakouny, Nader Jalloul, ma Rima KilanyO lenei tusiga e maua ai le tele o faʻataʻitaʻiga XPath mo le tusiaina o suʻega faʻamalosi. XPath (MDN) Ose nofoaga sili lea e amata ai pe a e manaʻo i se faʻamatalaga faʻapitoa e faʻamatalaina ai le auala e galue ai XPath. XPath Tutorial (ZVON) Ua ou iloa o lenei aʻoaʻoga e sili ona fesoasoani i laʻu lava aʻoaʻoga, faʻafetai i le tele o faʻataʻitaʻiga ma faʻamatalaga manino. XPatherO lenei meafaigaluega fesoʻotaʻi e mafai ai ona e galue saʻo ma le code.