Ke bile ka pele-pele ho nts'etsopele nako e telele ho lekana ho bona mokhoa ho theosa le lilemo: baetsi ba bacha ba sebetsa ka paradigm e ncha ea lenaneo ntle le ho utloisisa moelelo oa nalane ea eona. Ehlile, hoa utloahala ho se tsebe letho. Websaete ke sebaka se seholo haholo se nang le tsebo le litsebo tse fapaneng, 'me ha se kamehla re tsebang seo re sa se tsebeng. Ho ithuta tšimong ena ke leeto le tsoelang pele ho e-na le ntho e etsahalang hang ebe e fela. Taba ka ntlha: Motho e mong sehlopheng sa ka o ile a botsa hore na hoa khoneha ho bolela hore na basebelisi ba tloha hole le tabo e itseng ho UI. Ke ile ka supa ketsahalo ea JavaScript pele ho e jarolla. Empa ba kileng ba sebetsana le sena pele ba tseba hore sena se ka etsahala hobane ba hlasetsoe ka litemoso mabapi le data e sa bolokehang libakeng tse ling, tseo pele ho tsona e leng mokhoa o tloaelehileng oa tšebeliso. Ke boetse ke supile leqepheHide and visibilityChange liketsahalo ho mosebetsi-'moho le 'na ka tekanyo e ntle. Ke tsebile joang ka seo? Hobane e hlahile morerong o mong, eseng hobane ke ithutile ka eona qalong ha ke ne ke ithuta JavaScript. 'Nete ke hore mekhoa ea morao-rao ea morao-rao e eme mahetleng a linatla tsa theknoloji tse neng li le pele ho tsona. Ke mekhoa ea nts'etsopele e sa utloahaleng, hangata bakeng sa boiphihlelo bo betere ba nts'etsopele bo fokotsang, kapa esita le ho felisa, tlhoko ea ho tseba kapa ho ama seo e neng e le mehopolo ea mantlha eo motho e mong le e mong a lokelang ho e tseba. Nahana ka CSS Object Model (CSSOM). U ka lebella hore mang kapa mang ea sebetsang ho CSS le JavaScript o na le boiphihlelo bo bongata ba CSSOM, empa ha se kamehla ho tla ba joalo. Ho ne ho e-na le projeke ea React bakeng sa sebaka sa e-commerce seo ke sebelitseng ho sona moo re neng re hloka ho kenya leqephe la setaele bakeng sa mofani oa tefo ea khethiloeng hajoale. Bothata e ne e le hore leqephe la setaele le ne le kenya leqephe le leng le le leng ha le ne le hlokahala feela leqepheng le itseng. Moqapi ea filoeng mosebetsi oa ho etsa hore sena se etsahale o ne a e-so ka a kenya leqephe la setaele ka matla. Hape, sena sea utloahala ha React e hula mokhoa oa setso oo u ka beng u fihletse ho ona. Mohlomong CSSOM ha se ntho eo u e hlokang mosebetsing oa hau oa letsatsi le letsatsi. Empa ho ka etsahala hore o tla hloka ho sebelisana le eona ka nako e itseng, leha e le ketsahalong e le 'ngoe feela. Liphihlelo tsena li ile tsa ntšusumelletsa ho ngola sehlooho sena. Ho na le likarolo tse ngata tsa marang-rang tse teng le mahlale naheng eo o kanna oa se ke oa ama ka kotloloho mosebetsing oa hau oa letsatsi le letsatsi. Mohlomong u se u le mocha ho nts'etsopele ea webo 'me ha u li tsebe hobane u qoetse ka har'a moralo o itseng o sa hlokeng hore u o tsebe ka botebo, kapa ho hang. Ke bua ka ho khetheha ka XML, eo bongata ba rona re e tsebang ke puo ea khale e sa ts'oaneng ka ho felletseng le HTML. Ke hlahisa sena ka lebaka la lipuisano tsa morao-rao tsa WHATWG tse fanang ka maikutlo a hore karolo e kholo ea "XML stack" e tsejoang e le XSLT programming e lokela ho tlosoa ho libatli. Ona ke mofuta oa theknoloji ea khale, e teng eo re bileng le eona ka lilemo tse ka sebelisetsoang ntho e sebetsang joalo ka boemo ba CSSOM boo sehlopha sa ka se neng se le ho bona. Na u kile ua sebetsa le XSLT pele? Ha re boneng hore na re itšetlehile haholo ka theknoloji ena ea khale le ho sebelisa likarolo tsa eona ka ntle ho moelelo oa XML ho sebetsana le mathata a sebele a lefatše kajeno. XPath: The Central API Theknoloji ea bohlokoa ka ho fetisisa ea XML eo mohlomong e leng molemo ka ho fetisisa ka ntle ho pono e otlolohileng ea XML ke XPath, puo ea lipotso e u lumellang ho fumana node leha e le efe kapa tšobotsi sefateng sa markup se nang le motsoako o le mong. Ke na le lerato la botho bakeng sa XSLT, empa seo se boetse se itšetlehile ka XPath, 'me lerato la botho le tlameha ho behelloa ka thōko ka bohlokoa ba boemo. Khang ea ho tlosa XSLT ha e bue letho ka XPath, kahoo ke nahana hore e ntse e lumelloa. Ho lokile hobane XPath ke API e bohareng le ea bohlokoa ka ho fetisisa lethathamong lena la mahlale, haholo ha o leka ho fumana seo o ka se sebelisang kantle ho ts'ebeliso e tloaelehileng ea XML. Ho bohlokoa hobane, leha bakhethoa ba CSS ba ka sebelisoa ho fumana likarolo tse ngata leqepheng la hau, ha ba khone ho li fumana kaofela. Ho feta moo, bakhethoa ba CSS ba ke ke ba sebelisoa ho fumana ntho e ipapisitseng le boemo ba eona ba hajoale ho DOM. XPath e ka khona. Joale, ba bang ba lona ba balang sena ba kanna ba tseba XPath, mme ba bang ba kanna ba se tsebe. XPath ke sebaka se setle haholo sa theknoloji, 'me ha ke khone ho ruta lintho tsohle tsa motheo le ho u bontša lintho tse monate tseo u ka li etsang ka eona sehloohong se le seng se kang sena. Ke hlile ke lekile ho ngola sengoloa seo, empa khatiso e tloaelehileng ea Smashing Magazine ha e fete mantsoe a 5,000. Ke ne ke se ke ntse ke le ho fetaMantsoe a 2,000 ha a ntse a le bohareng ba lintho tsa motheo. Kahoo, ke tla qala ho etsa lintho tse pholileng ka XPath le ho u fa lihokelo tseo u ka li sebelisang bakeng sa lintho tsa motheo haeba u fumana lintho tsena li thahasellisa. Ho kopanya XPath le CSS XPath e ka etsa lintho tse ngata tseo bakhethoa ba CSS ba sa khoneng ho li etsa ha ba botsa likarolo. Empa bakhethoa ba CSS le bona ba ka etsa lintho tse 'maloa tseo XPath e sa khoneng ho li etsa, e leng, ho botsa lintlha ka mabitso a sehlopha.

CSS XPath .myClass /*[e na le(@class, "myClass")]

Mohlaleng ona, CSS e botsa likarolo tse nang le .myClass classname. Ho sa le joalo, mohlala oa XPath o botsa likarolo tse nang le sehlopha sa litšobotsi tse nang le khoele ea "myClass". Ka mantsoe a mang, e khetha likarolo tse nang le myClass tšobotsing efe kapa efe, ho kenyeletsoa likarolo tse nang le .myClass classname - hammoho le likarolo tse nang le "myClass" khoeleng, joalo ka .myClass2. XPath e pharaletseng ka kutloisiso eo. Kahoo, che. Ha ke khothaletse hore re lahle CSS ebe re qala ho khetha likarolo tsohle ka XPath. Ha se taba eo. Taba ke hore XPath e ka etsa lintho tseo CSS e ke keng ea khona ebile e ntse e ka ba molemo haholo, leha e le theknoloji ea khale ho sebatli sa sebatli mme e kanna ea se bonahale e hlakile qalong. Ha re sebeliseng mahlale a mabeli hammoho eseng feela hobane re khona, empa hobane re tla ithuta ho hong ka XPath ts'ebetsong, re e etse sesebelisoa se seng ka har'a stack ea hau - eo e kanna eaba u ne u sa tsebe hore e bile teng nako eohle! Bothata ke hore mokhoa oa JavaScript's evaluate le mekhoa e fapaneng ea khetho ea lipotso eo re e sebelisang le CSS APIs bakeng sa JavaScript ha e lumellane. Ke entse API e lumellanang ea ho botsa ho re qalisa, leha ho le joalo, ha ke so behe maikutlo a mangata ho eona kaha ke ho tloha ho seo re se etsang mona. Mona ke mohlala o bonolo o sebetsang oa moetsi oa lipotso tse ka sebelisoang hape: Sheba potso ea PenXPath [e ferekoang] ke Bryan Rasmussen. Ke kentse mekhoa e 'meli holim'a ntho ea tokomane: queryCSSSelectors (eo ha e le hantle e leng querySelectorAll) le queryXPaths. Ka bobeli li khutlisa ntho ea queryResults:

{ queryType: nodes | khoele | nomoro | boolean, liphetho: leha e le efe[] // likarolo tsa html, likarolo tsa xml, likhoele, linomoro, booleans, queryCSSSelectors: (potso: khoele, lokisa: boolean) => queryResults, queryXpaths: (potso: khoele, lokisa: boolean) => queryResults }

Lits'ebetso tsa queryCSSSelectors le queryXpaths li tsamaisa potso eo u li fang eona holim'a likarolo tse teng lethathamong la liphetho, ha feela liphetho e le tsa mofuta oa li-node, ehlile. Ho seng joalo, e tla khutlisa queryResult ka lethathamo le se nang letho le mofuta oa li-node. Haeba phetoho ea thepa e behiloe ho 'nete, mesebetsi e tla fetola queryResults ea eona. Tlas'a maemo a itseng sena ha sea lokela ho sebelisoa sebakeng sa tlhahiso. Ke e etsa ka tsela ena ho bonts'a litlamorao tse fapaneng tsa ho sebelisa li-API tsa lipotso tse peli hammoho. Mehlala ea Lipotso Ke batla ho bontša mehlala e 'maloa ea lipotso tse fapaneng tsa XPath tse bontšang tse ling tsa lintho tse matla tseo ba ka li etsang le hore na li ka sebelisoa joang sebakeng sa mekhoa e meng. Mohlala oa pele ke //li/text(). Sena se botsa likarolo tsohle tsa li mme se khutlisetsa li-node tsa tsona tsa mongolo. Kahoo, haeba re ne re ka botsa HTML e latelang:

  • e le nngwe
  • tse peli
  • tharo

... sena ke se khutlisitsoeng:

{"queryType":"xpathEvaluate","liphetho":["one","two","tharo"],"sephethoType":"khoele"}

Ka mantsoe a mang, re fumana lethathamo le latelang: ["e le 'ngoe", "tse peli","tharo"]. Ka tloaelo, u ne u tla botsa hore likarolo tsa li li fumane seo, fetola sephetho sa potso eo hore e be sehlopha, 'mapa oa sehlopha,' me u khutlisetse node ea mongolo ea ntho ka 'ngoe. Empa re ka etsa joalo ka bokhutšoanyane ka XPath: document.queryXPaths("//li/text()").liphetho.

Hlokomela hore mokhoa oa ho fumana node ea mongolo ke ho sebelisa mongolo (), o shebahalang joalo ka signature ea ts'ebetso - 'me ho joalo. E khutlisetsa node ea mongolo ea element. Mohlala oa rona, ho na le likarolo tse tharo tsa li-markup, e 'ngoe le e' ngoe e na le mongolo ("e le 'ngoe", "tse peli", le "tharo"). Ha re shebeng mohlala o mong hape oa potso ea mongolo (). Nka hore sena ke letšoao la rona: Kena

Ha re ngole potso e khutlisang boleng ba href: document.queryXPaths("//a[text() = 'Kena']/@href").liphetho.

Ena ke potso ea XPath tokomaneng ea hajoale, joalo ka mohlala oa ho qetela, empa lekhetlong lena re khutlisa tšobotsi ea href ea sehokelo (elemente) e nang le mongolo "Kena". Ea sebele e ile ea khutlasephetho ke ["/login.html"]. XPath Functions Overview Ho na le mesebetsi e mengata ea XPath, 'me mohlomong ha u e-so tloaelane le eona. Ho na le tse 'maloa, ke nahana, tseo u lokelang ho li tseba, ho kenyelletsa le tse latelang:

starts-withHaeba mongolo o qala ka mohlala o mong wa mongolo, o qala-ka(@href, 'http:') o kgutlisa nnete haeba semelo sa href se qala ka http:. e na le Haeba mongolo o na le mohlala o mong oa mongolo, o na le(text(), "Smashing Magazine") e khutlisa 'nete haeba node ea mongolo e na le mantsoe "Smashing Magazine" ho eona kae kapa kae. countE khutlisetsa palo ea hore na ho na le tse kae tse tšoanang potsong. Mohlala, count(//*[starts-with(@href, 'http:']) e khutlisa palo ea hore na lihokelo tse kae sebakeng sa node tse nang le lintlha tse nang le tšobotsi ea href e nang le mongolo o qalang ka http:. substringWorks like JavaScript substring, ntle le ha o fetisa khoele joalo ka khang. Mohlala, substring("my text", 2, 4) e khutlisetsa "y t". substring-before E khutlisa karolo ea thapo ka pele ho khoele e 'ngoe. Mohlala, substing-before("mongolo oaka", " ") e khutlisetsa "ka". Ka mokhoa o ts'oanang, substring-before("hi","bye") e khutlisa khoele e se nang letho. substring-afterE khutlisetsa karolo ea khoele ka morao ho e 'ngoe. Mohlala, substing-after("my text", " ") e khutlisetsa "text". Ka mokhoa o ts'oanang, substring-after("hi","bye") e khutlisa khoele e se nang letho. normalize-spaceE khutlisetsa khoele ea khang ka sebaka se sesoeu se tloahelehileng ka ho hlobola sebaka se sesoeu se etellang pele le se sala morao le ho tlosa tatelano ea litlhaku tsa sebaka se sesoeu ka sebaka se le seng. ha e khutlisetse boolean 'nete haeba khang e le leshano, ho seng joalo ke leshano. trueReturns boolean true. falseKhutlisetsa boolean bohata. concat Ntho e tšoanang le ea JavaScript concat, ntle le haeba u sa e tsamaise joalo ka mokhoa oa khoele. Ho e-na le hoo, o kenya likhoele tsohle tseo u batlang ho li kopanya. string-lengthSena ha se tšoane le bolelele ba khoele ea JavaScript, empa se khutlisa bolelele ba khoele eo e fanoeng e le khang. translateSe se nka khoele ebe se fetola khang ea bobeli hore e be khang ea boraro. Mohlala, fetolela("abcdef", "abc", "XYZ") e hlahisa XYZdef.

Ntle le mesebetsi ena ea XPath, ho na le mesebetsi e meng e mengata e sebetsang ka mokhoa o ts'oanang le bo-mphato ba bona ba JavaScript - kapa balekane ba puo efe kapa efe ea lenaneo - eo mohlomong u tla e fumana e le molemo, joalo ka mokato, siling, chitja, kakaretso, joalo-joalo. Setšoantšo se latelang se bontša e 'ngoe le e 'ngoe ea mesebetsi ena: Sheba Pen XPath Numerical functions [tse ferekong] ke Bryan Rasmussen. Hlokomela hore, joalo ka mesebetsi e mengata ea ho qhekella likhoele, tse ngata tsa linomoro li nka karolo e le 'ngoe. Sena ke 'nete, hobane li lokela ho sebelisoa bakeng sa ho botsa, joalo ka mohlala oa ho qetela oa XPath: //li[fatše(mongolo())> 250]/@val

Haeba u li sebelisa, joalo ka ha mehlala e mengata e etsa, u tla qetella u e tsamaisa sebakeng sa pele se lumellanang le tsela. Ho boetse ho na le mefuta e meng ea mefuta eo u lokelang ho e qoba hobane JavaScript e se e ntse e na le mathata a eona a ho fetola mofuta. Empa ho ka ba le linako tseo ka tsona u batlang ho fetolela khoele ho nomoro e le hore u e hlahlobe khahlanong le nomoro e 'ngoe. Mesebetsi e behang mofuta oa ntho ke boolean, nomoro, khoele, le node. Tsena ke lintlha tsa bohlokoa tsa XPath. 'Me joalo ka ha u ka inahanela, boholo ba mesebetsi ena e ka sebelisoa ho li-datatypes tseo e seng li-node tsa DOM. Mohlala, substring-after e nka khoele joalo ka ha re se re koahetse, empa e kanna ea ba khoele e tsoang ho semelo sa href. E ka boela ea e-ba khoele feela:

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

Ho hlakile hore mohlala ona o tla re khutlisetsa liphetho joalo ka ["lefatše"]. Ho bonts'a sena ka ts'ebetso, ke entse leqephe la demo ke sebelisa mesebetsi khahlano le lintho tseo e seng li-node tsa DOM: Sheba potso ea PenXPath [e ferekoang] ke Bryan Rasmussen. U lokela ho ela hloko karolo e makatsang ea mosebetsi oa ho fetolela, e leng hore haeba u na le setho sa khang ea bobeli (ke hore, lethathamo la litlhaku tseo u batlang ho li fetolela) 'me ho se na motho ea tšoanang eo a ka fetolelang ho tsona, motho eo o tla tlosoa ho tsoa. Kahoo, sena:

translate('Hello, My Name is Inigo Montoya, u bolaile ntate, u itokisetse ho shoa','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','*')

…e fella ka khoele, ho kenyeletsoa libaka: [" * * ** "]

Sena se bolela hore tlhaku "a" e fetoleloa ho asterisk (*), empa tlhaku e 'ngoe le e' ngoe e se nang phetolelo e fuoang khoele e lebisitsoeng e tlosoa ka ho feletseng. Sebaka se sesoeu ke sohle seo re se siilengpakeng tsa litlhaku tse fetoletsoeng e le “a”. Hape, potso ena:

translate('Hello, My Name is Inigo Montoya, u bolaile Ntate, u itokisetse ho shoa','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','**********************************************')")

... ha e na bothata mme e hlahisa sephetho se shebahalang tjena:

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

E kanna ea u khahla ka hore ha ho na mokhoa o bonolo ho JavaScript oa ho etsa hantle seo mosebetsi oa ho fetolela XPath o se etsang, leha maemong a mangata a ts'ebeliso, replaceAll ka mantsoe a tloaelehileng a ka e sebetsana. U ka sebelisa mokhoa o ts'oanang le oo ke o bontšitseng, empa seo ke sa bohlokoa haeba sohle seo u se batlang ke ho fetolela likhoele. Mohlala o latelang o koahela mosebetsi oa phetolelo oa XPath ho fana ka mofuta oa JavaScript: Sheba mosebetsi oa ho fetolela Pen [ea fereko] ke Bryan Rasmussen. U ka sebelisa ntho e kang ee hokae? Ak'u nahane ka Cesare Cipher encryption ka offset ea libaka tse tharo (mohlala, top-of-the-line encryption ho tloha 48 B.C.):

translate("Cesare o rera ho tšela Rubicon!", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", "XYZABCDEFGHIJKLMNOPQRSTUVWxyzabcdefghijklmnopqrstuvw")

Mongolo o kenang "Cesare o rera ho tšela Rubicon!" liphetho ka "Zxbpxo fp mixkkfkd ql zolpp qeb Oryfzlk!" Ho fana ka mohlala o mong o potlakileng oa menyetla e fapaneng, ke entse ts'ebetso ea tšepe e nkang mohala oa khoele 'me e sebelisa mosebetsi oa ho fetolela ho khutlisetsa mongolo, ho kenyelletsa le litlhaku tsohle tse nkang li-umlauts. Sheba tšebetso ea tšepe ea Pen [e ferekoang] ke Bryan Rasmussen.

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

'Me, ha ho fanoe ka sengoloa "Motley Crue rules, rock on dudes!", e khutlisa "Mötley Crüe rüles, röck ön düdes!" Ha e le hantle, ho ka 'na ha e-ba le mefuta eohle ea mekhoa ea ho sebelisa mokhoa ona. Haeba ke uena, sengoloa sena sa TVTropes se lokela ho u fa khothatso e ngata. Ho sebelisa CSS Ka XPath Hopola lebaka la rona la mantlha la ho sebelisa likhetho tsa CSS hammoho le XPath: CSS e utloisisa hantle hore na sehlopha ke eng, athe se molemohali seo u ka se etsang ka XPath ke papiso ea likhoele tsa tšobotsi ea sehlopha. Seo se tla sebetsa maemong a mangata. Empa haeba u ne u ka kena boemong boo, ha re re, motho e mong a thehile lihlopha tse bitsoang .primaryLinks le .primaryLinks2 'me u ne u sebelisa XPath ho fumana sehlopha sa .primaryLinks, joale u ka 'na ua kena mathateng. Ha feela ho se na letho le hlokang kelello joalo, mohlomong u ka sebelisa XPath. Empa ke masoabi ho tlaleha hore ke sebelitse libakeng tseo ho tsona batho ba etsang lintho tse booatla. Mona ke demo e 'ngoe e sebelisang CSS le XPath hammoho. E bontša se etsahalang ha re sebelisa khoutu ho tsamaisa XPath sebakeng sa moelelo oo e seng node ea tokomane. Bona Pen css le xpath hammoho [tse fereko] ke Bryan Rasmussen. Potso ea CSS ke .relatedarticles a, e latang likarolo tse peli ho div e abetsoeng sehlopha sa .relatedarticles. Ka mor'a moo ho na le lipotso tse tharo tse "mpe", ke ho re, lipotso tse sa etseng seo re batlang hore ba se etse ha ba tsamaisana le likarolo tsena e le moelelo oa moelelo. Nka hlalosa hore na ke hobane'ng ha ba itšoara ka tsela e fapaneng le eo u ka e lebellang. Lipotso tse tharo tse mpe tseo ho buuoang ka tsona ke:

//text(): E khutlisa mongolo ohle o tokomaneng. //a/text(): E khutlisetsa mongolo o ka hare ho lihokelo tokomaneng. ./a/text(): Ha e tlise liphetho.

Lebaka la liphetho tsena ke hore leha moelelo oa hau e le lintlha tse khutlisitsoeng ho tsoa potsong ea CSS, // e khahlano le tokomane eohle. Ena ke matla a XPath; CSS e ke ke ea tloha node ho ea ho moholo-holo ebe ho ngoan'eno oa moholo-holo eo, 'me ea theohela ho setloholo sa ngoan'eno eo. Empa XPath e ka khona. Ho sa le joalo, ./ e botsa bana ba node ea hona joale, moo letheba (.) le emelang node ea hona joale, 'me slash ea pele (/) e emela ho ea node e itseng ea ngoana - hore na ke tšobotsi, element, kapa mongolo, e laotsoe ke karolo e latelang ea tsela. Empa ha ho na ngoana ntho e khethiloeng ke potso ea CSS, kahoo potso eo le eona ha e buse letho. Ho na le lipotso tse tharo tse ntle ho demo ea ho qetela:

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

Potso ea sebaka se tloaelehileng e bonts'a ts'ebeliso ea ts'ebetso ea XPath, empa hape e lokisa bothata bo kenyellelitsoeng lipotsong tse ling. HTML e hlophisitsoe ka tsela ena:

Ho iketsetsa Teko ea Sebopeho sa Hao ka Selenium WebDriver

Potso e khutlisa phepelo ea mohala qalong le qetellong ea node ea mongolo,le normalize-sebaka se tlosa sena. Ho sebelisa ts'ebetso efe kapa efe ea XPath e khutlisetsang ntho e 'ngoe ntle le boolean e nang le XPath e kenang e sebetsa mesebetsing e meng. Demo e latelang e bonts'a mehlala e mengata: Sheba mehlala ea mesebetsi ea Pen xpath [e ferekoang] ke Bryan Rasmussen. Mohlala oa pele o bontša bothata boo u lokelang ho bo ela hloko. Ka ho khetheha, khoutu e latelang:

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

…e khutlisetsa khoele e le 'ngoe:

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

Hoa utloahala, na? Mesebetsi ena ha e khutlisetse li-arrays empa e na le likhoele tse le 'ngoe kapa linomoro tse le 'ngoe. Ho tsamaisa tšebetso kae kapa kae ka liphetho tse ngata ho khutlisa sephetho sa pele feela. Sephetho sa bobeli se bontša seo re hlileng re se batlang:

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

E khutlisetsang lethathamo la likhoele tse peli:

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

Mesebetsi ea XPath e ka hlophisoa joalo ka mesebetsi ho JavaScript. Kahoo, haeba re tseba sebopeho sa URL ea Smashing Magazine, re ka etsa se latelang (ho khothaletsoa ka ho sebelisa li-template literals): `fetolela( khoele e nyane ( substring-after(./@href, 'www.smashingmagazine.com/') ,9), '/','')`

Sena se ntse se rarahana haholo hoo se hlokang maikutlo a hlalosang seo se se etsang: nka URL kaofela ho tsoa ho href ka mor'a www.smashingmagazine.com/, tlosa litlhaku tse robong tsa pele, ebe u fetolela tlhaku ea pele ho slash (/) lefeela e le hore u tlose sephetho sa pele. Sehlopha se hlahisoang:

["lekola-selenium-webdriver","liphetho tsa tlhahlobo-ka mokhoa o ikemetseng-li ntlafatsa phihlello"]

Maemo a eketsehileng a Tšebeliso ea XPath XPath e hlile e ka khanya litekong. Lebaka ha le thata ho bona, kaha XPath e ka sebelisoa ho fumana ntho e 'ngoe le e' ngoe ho DOM, ho tloha boemong bofe kapa bofe ho DOM, athe CSS ha e khone. U ke ke ua tšepa hore litlelase tsa CSS li tla lula li tsitsitse lits'ebetsong tse ngata tsa sejoale-joale, empa ka XPath, re khona ho etsa lipapali tse matla haholoanyane mabapi le hore na mongolo oa element ke ofe, ho sa tsotelehe sebopeho sa DOM se fetohang. Ho bile le lipatlisiso mabapi le mekhoa e u lumellang hore u etse liteko tse tsitsitseng tsa XPath. Ha ho letho le lebe ho feta ho ba le liteko tse fokolang le ho hlōleha hobane feela mokhethoa oa CSS ha a sa sebetsa hobane ho hong ho rehiloe kapa ho tlositsoe. XPath e boetse e ntle haholo ts'ebetsong ea libaka tse ngata. Ho na le mekhoa e fetang e le 'ngoe ea ho sebelisa lipotso tsa XPath ho tsamaisana le element. Ho joalo le ka CSS. Empa lipotso tsa XPath li ka kenella linthong ka tsela e lebisitsoeng ho feta e fokotsang se khutlisoang, e leng se u lumellang ho fumana papali e itseng moo ho ka bang le lipapali tse 'maloa tse ka khonehang. Ka mohlala, re ka sebelisa XPath ho khutlisa karolo e itseng ea h2 e ka hare ho div e latelang hang-hang div ea ngoan'eno eo, le eona e nang le setšoantšo sa ngoana se nang le tšobotsi ea data-testID="moetapele" ho eona:

ha u fumane sehlooho sena

Le se ke oa fumana sehlooho sena

Sehlooho sa setšoantšo sa moetapele

Ena ke potso: document.queryXPaths(` //div[ ngoan'eno ea latelang::div[1] /img[@data-testID='moetapele'] ] /h2/ mongolo() `);

Ha re ke re theoleng demo ho bona hore na tsohle li kopana joang: Bona Potso ea Pen Complex H2 [e ferekoang] ke Bryan Rasmussen. Kahoo, ho joalo. Ho na le litsela tse ngata tse ka khonehang tsa ntho leha e le efe tekong e sebelisang XPath. XSLT 1.0 Ho theoha Ke boletse pejana hore sehlopha sa Chrome se rera ho tlosa tšehetso ea XSLT 1.0 ho sebatli. Ho bohlokoa hobane XSLT 1.0 e sebelisa lenaneo le shebaneng le XML bakeng sa phetoho ea litokomane eo, le eona, e itšetlehileng ka XPath 1.0, e leng eona e fumanoang ho li-browser tse ngata. Ha seo se etsahala, re tla lahleheloa ke karolo ea bohlokoa ea XPath. Empa ha re nahana ka taba ea hore XPath e hlile e ntle bakeng sa liteko tsa ho ngola, ke fumana ho le thata hore XPath ka kakaretso e nyamele neng kapa neng haufinyane. Ho boletse joalo, ke hlokometse hore batho ba thahasella tšobotsi ha e tlosoa. 'Me ehlile ke' nete tabeng ea XSLT 1.0 e theotsoeng. Ho na le puisano eohle e etsahalang ho Hacker News e tletse likhang tse khahlano le ho theoloa. Poso ka boeona ke mohlala o motle oa ho theha moralo oa blogging ka XSLT. Wenau ka ipalla lipuisano, empa e kena tabeng ea hore na JavaScript e ka sebelisoa joang e le shim bakeng sa XLST ho sebetsana le mefuta eo ea linyeoe. Ke boetse ke bone litlhahiso tsa hore libatli li lokela ho sebelisa SaxonJS, e leng kou ea lienjineri tsa JavaScript tsa Saxon XSLT, XQUERY, le XPath. Ke mohopolo o khahlisang, haholo ha Saxon-JS e sebelisa mofuta oa hajoale oa litlhaloso tsena, athe ha ho na sebatli se sebelisang mofuta ofe kapa ofe oa XPath kapa XSLT ho feta 1.0, mme ha ho le e 'ngoe e sebelisang XQuery. Ke fihlile ho Norm Tovey-Walsh ho Saxonica, k'hamphani e ka morao ho SaxonJS le mefuta e meng ea enjene ea Saxon. O ile a re: "Haeba morekisi ofe kapa ofe oa sebatli a ne a thahasella ho nka SaxonJS e le qalo ea ho kopanya theknoloji ea sejoale-joale ea XML ho sebatli, re ka thabela ho buisana le bona ka eona." - Norm Tovey-Walsh.

Empa hape o ile a eketsa: "Ke tla makala haholo haeba mang kapa mang a ne a ka nahana hore ho nka SaxonJS ka mokhoa oa eona oa hona joale le ho e lahlela ka har'a sebatli se sa fetoheng e ka ba mokhoa o nepahetseng. Morekisi oa sebatli, ka tlhaho ea hore ba haha ​​browser, a ka atamela ho kopanngoa ka mokhoa o tebileng ho feta kamoo re ka khonang 'ho tsoa ka ntle'." - Norm Tovey-Walsh.

Ke habohlokoa ho hlokomela hore maikutlo a Tovey-Walsh a fihlile hoo e ka bang beke pele ho phatlalatso ea XSLT ea ho theoha. Qetello Ke ne ke khona ho tsoela pele. Empa ke ts'epa hore sena se bonts'itse matla a XPath mme se u file mehlala e mengata e bonts'ang mokhoa oa ho e sebelisa ho fihlela lintho tse kholo. Ke mohlala o phethahetseng oa theknoloji ea khale ka har'a sebatli sa sebatli se ntseng se na le ts'ebeliso e ngata le kajeno, leha o ne o so ka o tseba hore e teng kapa ha o so ka o nahana ho e fihlela. Ho Tsoela Pele ho Bala

"Ho Matlafatsa Boiketlo ba Liteko tse Ikemetseng tsa Webo ka Puo ea Tlhaho" (ACM Digital Library) ka Maroun Ayli, Youssef Bakouny, Nader Jalloul, le Rima KilanySengoliloeng sena se fana ka mehlala e mengata ea XPath bakeng sa ho ngola liteko tse tsitsitseng. XPath (MDN)Sena ke sebaka se setle sa ho qala haeba u batla tlhaloso ea tekheniki e hlalosang hore na XPath e sebetsa joang. XPath Tutorial (ZVON) Ke fumane thuto ena e le ea bohlokoa haholo thutong ea ka, ka lebaka la mehlala e mengata le litlhaloso tse hlakileng. XPatherSesebediswa sena se sebetsanang se o dumella ho sebetsa ka kotloloho le khoutu.

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