Ndakhala ndikuwongolera kutsogolo kwanthawi yayitali kuti ndiwone zomwe zikuchitika pazaka zambiri: otukula achichepere akugwira ntchito ndi mawonekedwe atsopano a mapulogalamu osamvetsetsa mbiri yakale. Ndizomveka bwino kusadziwa kanthu. Ukonde ndi malo akulu kwambiri okhala ndi maluso osiyanasiyana komanso zapadera, ndipo sitidziwa nthawi zonse zomwe sitikudziwa. Kuphunzira m'gawoli ndi ulendo wopitilira osati zomwe zimachitika kamodzi ndikutha. Chitsanzo: Wina pagulu langa adafunsa ngati ndizotheka kudziwa ngati ogwiritsa ntchito achoka pa tabu inayake mu UI. Ndidawonetsa chochitika cha JavaScript chisanachitike. Koma iwo omwe adachitapo izi m'mbuyomu amadziwa kuti izi ndizotheka chifukwa adakhudzidwa ndi zidziwitso za data yosasungidwa pamasamba ena, omwe kutsitsa kumagwiritsidwa ntchito. Ndinawonetsanso tsambaBisani ndi kuwonekeraSinthani zochitika kwa mnzanga kuti muyese bwino. Ndinadziwa bwanji zimenezi? Chifukwa idabwera muntchito ina, osati chifukwa ndidaphunzirapo pomwe ndimaphunzira JavaScript. Chowonadi ndi chakuti zitsulo zamakono zakutsogolo zikuyima pamapewa a zimphona zamakono zomwe zidatsogolera. Ndi njira zachitukuko zomwe nthawi zambiri zimakhala zabwinoko, zomwe zimachepetsa, kapenanso kuthetsa, kufunikira kodziwa kapena kukhudza zomwe zakhala zofunikira pakutsogolo zomwe aliyense ayenera kudziwa. Ganizirani za CSS Object Model (CSSOM). Mutha kuyembekezera kuti aliyense wogwira ntchito ku CSS ndi JavaScript ali ndi zambiri za CSSOM, koma sizikhala choncho nthawi zonse. Panali pulojekiti ya React pa tsamba la e-commerce lomwe ndidagwirapo pomwe timafunikira kuyika sitayilo ya omwe amalipira omwe asankhidwa pakadali pano. Vuto linali loti masitayelo anali kutsitsa patsamba lililonse pomwe amafunikira patsamba linalake. Wopangayo yemwe adapatsidwa ntchito yopanga izi anali asanakweze pepala lokhazikika. Apanso, izi ndizomveka bwino pamene React imachotsa njira yachikhalidwe yomwe mungakhale nayo. CSSOM sichinthu chomwe mungafune pa ntchito yanu ya tsiku ndi tsiku. Koma ndizotheka kuti mudzafunika kulumikizana nazo nthawi ina, ngakhale nthawi imodzi. Zochitika izi zinandilimbikitsa kulemba nkhaniyi. Pali zambiri zomwe zilipo pa intaneti komanso matekinoloje kuthengo omwe simungawakhudze mwachindunji pantchito yanu yatsiku ndi tsiku. Mwina ndinu watsopano pakukula kwa intaneti ndipo simukuwadziwa chifukwa mwakhazikika pamalingaliro enaake omwe safuna kuti mudziwe mozama, kapena ayi. Ndikulankhula makamaka za XML, yomwe ambiri aife timadziwa kuti ndi chilankhulo chakale chomwe sichisiyana kwenikweni ndi HTML. Ndikunena izi chifukwa cha zokambirana zaposachedwa za WHATWG zomwe zikuwonetsa kuti gawo lalikulu la XML lodziwika kuti XSLT mapulogalamu lichotsedwe pakusakatula. Umu ndi mtundu waukadaulo wakale, womwe takhala nawo kwa zaka zambiri womwe ungagwiritsidwe ntchito ngati momwe gulu langa linalili mu CSSOM. Kodi mudagwirapo ntchito ndi XSLT m'mbuyomu? Tiyeni tiwone ngati tikutsamira kwambiri ukadaulo wakalewu ndikugwiritsa ntchito mawonekedwe ake kunja kwa XML kuti tithane ndi zovuta zenizeni masiku ano. XPath: Central API Ukadaulo wofunikira kwambiri wa XML womwe mwina ndiwothandiza kwambiri kunja kwa mawonekedwe owongoka a XML ndi XPath, chilankhulo chofunsa chomwe chimakulolani kuti mupeze mfundo kapena mawonekedwe aliwonse mumtengo wokhala ndi mizu imodzi. Ndili ndi chikondi changa pa XSLT, koma izi zimadaliranso XPath, ndipo chikondi changa chiyenera kuyikidwa pambali pakufunika. Mtsutso wochotsa XSLT sutchula XPath, ndiye ndikuganiza kuti ikuloledwabe. Ndizo zabwino chifukwa XPath ndiye API yapakati komanso yofunikira kwambiri paukadaulo uwu, makamaka poyesa kupeza china chogwiritsa ntchito kunja kwa XML. Ndizofunikira chifukwa, pomwe osankha CSS atha kugwiritsidwa ntchito kupeza zinthu zambiri patsamba lanu, sangazipeze zonse. Kuphatikiza apo, osankha CSS sangagwiritsidwe ntchito kupeza chinthu kutengera momwe chilili mu DOM. XPath akhoza. Tsopano, ena mwa inu mukuwerenga izi mwina mukudziwa XPath, ndipo ena sangadziwe. XPath ndi gawo lalikulu kwambiri laukadaulo, ndipo sindingathe kuphunzitsa zoyambira zonse komanso kukuwonetsani zinthu zabwino zomwe mungachite nazo munkhani imodzi ngati iyi. Ndidayesa kulemba nkhaniyi, koma kufalitsa kwa Smashing Magazine sikupitilira mawu a 5,000. Ndinali kale kuposaMawu 2,000 pomwe ali pakati pazoyambira. Chifukwa chake, ndiyamba kuchita zinthu zabwino ndi XPath ndikukupatsani maulalo omwe mungagwiritse ntchito pazoyambira ngati mupeza zinthu izi zosangalatsa. Kuphatikiza XPath & CSS XPath imatha kuchita zinthu zambiri zomwe osankha CSS sangachite akamafunsa zinthu. Koma osankha CSS amathanso kuchita zinthu zingapo zomwe XPath sangathe, zomwe ndi, kufunsa zinthu ndi dzina la kalasi.

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

Muchitsanzo ichi, CSS imafunsa zinthu zomwe zili ndi .myClass classname. Pakadali pano, chitsanzo cha XPath chimafunsa zinthu zomwe zili ndi gulu lokhala ndi chingwe "myClass". Mwa kuyankhula kwina, imasankha zinthu zomwe zili ndi myClass mu chikhalidwe chilichonse, kuphatikizapo zinthu zomwe zili ndi .myClass classname - komanso zinthu zomwe zili ndi "myClass" mu chingwe, monga .myClass2. XPath ndi yotakata mwanjira imeneyo. Kotero, ayi. Sindikunena kuti tiyenera kutaya CSS ndikuyamba kusankha zinthu zonse kudzera pa XPath. Imeneyi si mfundo. Mfundo ndi yakuti XPath ikhoza kuchita zinthu zomwe CSS sichitha ndipo zingakhale zothandiza kwambiri, ngakhale ndi teknoloji yakale mu msakatuli wasakatuli ndipo sizikuwoneka zoonekera poyang'ana koyamba. Tiyeni tigwiritse ntchito matekinoloje awiriwa palimodzi osati chifukwa choti tingathe, koma chifukwa tiphunzirapo kanthu za XPath mkati mwa njirayi, ndikupangitsa kuti ikhale chida china muzosunga zanu - zomwe mwina simunadziwe zakhalapo nthawi yonseyi! Vuto ndilakuti njira ya JavaScript's document.evaluate ndi njira zosiyanasiyana zosankhira mafunso zomwe timagwiritsa ntchito ndi ma CSS API a JavaScript sizigwirizana. Ndapanga API yofunsira kuti tiyambe, ngakhale ndizovomerezeka, sindinayikepo malingaliro ambiri chifukwa ndikuchoka pazomwe tikuchita pano. Nachi chitsanzo chosavuta chogwirira ntchito cha womanganso wogwiritsanso ntchito: Onani funso la CholemberaXPath [lopangidwa ndi Bryan Rasmussen. Ndawonjeza njira ziwiri pachinthu cholembedwa: queryCSSSelectors (yomwe kwenikweni ndi querySelectorAll) ndi queryXPaths. Onsewa amabweretsa chinthu cha queryResults:

{ queryType: nodes | chingwe | nambala | boolean, zotsatira: chilichonse[] // html zinthu, xml element, zingwe, manambala, booleans, queryCSSSelectors: (funso: chingwe, sinthani: boolean) => queryResults, queryXpaths: (funso: chingwe, sinthani: boolean) => queryResults }

queryCSSSelectors ndi queryXpaths ntchito zimayendetsa funso lomwe mumawapatsa pazinthu zomwe zili muzotsatira, bola zotsatira zake zili zamtundu wa node, inde. Kupanda kutero, ibweza queryResult ndi gulu lopanda kanthu komanso mtundu wa node. Ngati zosinthazo zakhazikitsidwa kuti zikhale zoona, ntchitozo zisintha queryResults zawo. Izi siziyenera kugwiritsidwa ntchito m'malo opangira zinthu. Ndikuchita motere kuti ndiwonetse zotsatira zosiyanasiyana zogwiritsa ntchito ma API awiriwa pamodzi. Chitsanzo Mafunso Ndikufuna kuwonetsa zitsanzo zingapo zamafunso osiyanasiyana a XPath omwe akuwonetsa zina mwazinthu zamphamvu zomwe angachite komanso momwe angagwiritsire ntchito m'malo mwa njira zina. Chitsanzo choyamba ndi //li/text(). Izi zimafunsa zonse za li ndikubweza ma node awo. Chifukwa chake, ngati titha kufunsa HTML yotsatirayi:

  • mmodzi
  • awiri
  • atatu

…izi ndi zomwe zabwezedwa:

{"queryType":"xpathEvaluate","results":["one","two","three"],"resultType":"chingwe"}

Mwanjira ina, timapeza mndandanda wotsatirawu: [“imodzi", "ziwiri", "tatu"]. Nthawi zambiri, mungafunse kuti zinthu za li zipeze izi, sinthani zotsatira za funsolo kukhala mndandanda, sungani mndandanda, ndikubweza node yachinthu chilichonse. Koma titha kuchita izi mwachidule ndi XPath: document.queryXPaths("//li/text()").zotsatira.

Zindikirani kuti njira yopezera node ndikugwiritsa ntchito text(), yomwe imawoneka ngati siginecha yantchito - ndipo itero. Imabwezeranso node ya mawu a chinthu. M'chitsanzo chathu, pali zinthu zitatu za li poyikapo, chilichonse chili ndi mawu ("chimodzi", "ziwiri", ndi "zitatu"). Tiyeni tiwone chitsanzo chimodzi cha funso la text(). Tangoganizani kuti ichi ndi chizindikiro chathu: Lowani

Tiyeni tilembe funso lomwe limabweretsanso phindu la href: document.queryXPaths("//a[text() = 'Lowani']/@href").results.

Ili ndi funso la XPath pa chikalata chapano, monga chitsanzo chomaliza, koma nthawi ino tibwereranso mawu a href a ulalo (chinthu) chomwe chili ndi mawu oti "Lowani". Zobwerera zenizenizotsatira ndi ["/login.html"]. XPath Ntchito mwachidule Pali ntchito zingapo za XPath, ndipo mwina simukuzidziwa. Pali zingapo, ndikuganiza, zomwe zili zoyenera kuzidziwa, kuphatikiza izi:

starts-withNgati mawu ayamba ndi chitsanzo china, ayamba-ndi(@href, 'http:') amabwereranso ngati mawu a href ayamba ndi http:. muli Ngati mawu ali ndi chitsanzo china, muli (malemba(), "Smashing Magazine") amabwereranso ngati nodi yalemba ili ndi mawu akuti "Smashing Magazine" paliponse. countImabweza chiŵerengero cha kuchuluka kwa zofananira ndi funso. Mwachitsanzo, count(//*[starts-with(@href, 'http:']) imabweretsanso kuchuluka kwa maulalo angati mu node ya nkhani yomwe ili ndi mawonekedwe a href omwe ali ndi mawu oyambira ndi http:. substringWorks ngati JavaScript substring, pokhapokha mutadutsa chingwecho ngati mkangano. Mwachitsanzo, substring("mawu anga", 2, 4) amabwezeretsa "y t". substring-beforeAbweza gawo la chingwe patsogolo pa chingwe china. Mwachitsanzo, substing-fore("mawu anga", " ") amabwezeretsa "wanga". Momwemonso, substring-before("hi",,bye") imabweretsanso chingwe chopanda kanthu. substring-afterKubwezera gawo la chingwe pambuyo pa chingwe china. Mwachitsanzo, substing-after("mawu anga", " ") amabwezeretsa "mawu". Momwemonso, substring-after("hi", "bye") imabweretsanso chingwe chopanda kanthu. normalize-spaceKubweza chingwe cha mkangano wokhala ndi malo oyera okhazikika povula malo oyera otsogola ndi kutsata pambuyo ndikusintha kutsatana kwa zilembo zoyera ndi danga limodzi. osati Kubwezera zabodza ngati zonena zili zabodza, mwina zabodza. trueReturns boolean zoona. falseKubweza boolean zabodza. concatChinthu chofanana ndi JavaScript concat, kupatula ngati simuyendetsa ngati njira pa chingwe. M'malo mwake, mumayika zingwe zonse zomwe mukufuna kugwirizanitsa. string-lengthIzi sizofanana ndi utali wa chingwe cha JavaScript, koma m'malo mwake zimabwezera kutalika kwa chingwe chomwe chaperekedwa ngati mtsutso. translateIzi zimatenga chingwe ndikusintha mtsutso wachiwiri kukhala mtsutso wachitatu. Mwachitsanzo, translate("abcdef", "abc", "XYZ") zotuluka XYZdef.

Kupatula pa ntchito za XPath izi, palinso ntchito zina zingapo zomwe zimagwira ntchito mofananamo ndi anzawo a JavaScript - kapena ofananira nawo m'chinenero chilichonse cha pulogalamu - zomwe mwina mungapezenso zothandiza, monga pansi, denga, kuzungulira, kuchuluka, ndi zina zotero. Chiwonetsero chotsatirachi chikuwonetsa chilichonse mwa izi: Onani ntchito za Pen XPath Numerical [zopangidwa ndi Bryan Rasmussen. Dziwani kuti, monga momwe zingwe zambiri zimagwirira ntchito, ambiri mwa manambala amatenga gawo limodzi. Izi, ndithudi, chifukwa akuyenera kugwiritsidwa ntchito pofunsa, monga mu chitsanzo chomaliza cha XPath: //li[pansi(zolemba())> 250]/@val

Ngati muzigwiritsa ntchito, monga momwe zitsanzo zambiri zimachitira, mudzatha kuziyendetsa pamfundo yoyamba yomwe ikufanana ndi njirayo. Palinso mitundu ina yosinthira yomwe muyenera kupewa chifukwa JavaScript ili kale ndi zovuta zake zosinthira. Koma pakhoza kukhala nthawi yomwe mukufuna kusintha chingwe kukhala nambala kuti muyang'ane ndi nambala ina. Ntchito zomwe zimayika mtundu wa chinthu ndi boolean, nambala, chingwe, ndi node. Awa ndi mitundu yofunikira ya XPath. Ndipo monga momwe mungaganizire, zambiri mwazochitazi zitha kugwiritsidwa ntchito pamasamba omwe si a DOM node. Mwachitsanzo, substring-after imatenga chingwe monga tafotokozera kale, koma ikhoza kukhala chingwe chochokera ku href. Itha kukhalanso chingwe:

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

Mwachiwonekere, chitsanzo ichi chidzatibwezeranso zotsatira monga ["dziko"]. Kuti ndiwonetse izi, ndapanga tsamba lachiwonetsero pogwiritsa ntchito zinthu zomwe sizili ma DOM node: Onani funso la CholemberaXPath [lopangidwa ndi Bryan Rasmussen. Muyenera kuzindikira mbali yodabwitsa ya ntchito yomasulira, yomwe ndi yakuti ngati muli ndi khalidwe mumkangano wachiwiri (ie, mndandanda wa zilembo zomwe mukufuna kuti zimasuliridwe) ndipo palibe chikhalidwe chofananira chomwe mungatanthauzire, khalidwelo limachotsedwa pazotulutsa. Choncho, izi:

translate('Moni, Dzina Langa ndi Inigo Montoya, munapha bambo anga, konzekerani kufa','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','*')

…zimabweretsa mu chingwe, kuphatikiza mipata: [" * * ** "]

Izi zikutanthauza kuti chilembo "a" chikumasuliridwa ku asterisk (*), koma zilembo zina zilizonse zomwe zilibe zomasulira zoperekedwa ndi chingwe chomwe mukufuna zimachotsedwa. Malo oyera ndi zonse zomwe tatsala nazopakati pa zilembo “a” zomasuliridwa. Ndiye kachiwiri, funso ili:

translate('Moni, Dzina Langa ndine Inigo Montoya, munapha bambo anga, konzekerani kufa','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','**********************************************')")

... ilibe vuto ndipo zotsatira zake zikuwoneka motere:

*************************************************************************

Zitha kukuwonetsani kuti palibe njira yosavuta mu JavaScript yochitira ndendende zomwe XPath yomasulira imachita, ngakhale nthawi zambiri, m'malo mwaAll yokhala ndi mawu okhazikika amatha kuthana nayo. Mutha kugwiritsa ntchito njira yomweyi yomwe ndawonetsa, koma ndizabwino kwambiri ngati mukufuna kumasulira zingwezo. Chiwonetsero chotsatirachi chikukulunga ntchito yomasulira ya XPath kuti ipereke mtundu wa JavaScript: Onani ntchito yomasulira ya Cholembera [yopindidwa] ndi Bryan Rasmussen. Kodi mungagwiritse ntchito kuti ngati izi? Ganizirani za Caesar Cipher encryption yokhala ndi malo atatu (mwachitsanzo, kubisa kwapamwamba kwambiri kuyambira 48 BC):

translate("Kaisara akukonzekera kuwoloka Rubicon!", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", "XYZABCDEFGHIJKLMNOPQRSTUVWxyzabcdefghijklmnopqrstuvw")

Mawu olowera "Kaisara akukonzekera kuwoloka Rubicon!" zotsatira zake "Zxbpxo fp mixkkfkd ql zolpp qeb Oryfzlk!" Kuti ndipereke chitsanzo china chofulumira cha zotheka zosiyanasiyana, ndinapanga ntchito yachitsulo yomwe imatenga chingwe cholowetsamo ndikugwiritsa ntchito ntchito yomasulira kuti ibwezeretse malembawo, kuphatikizapo zilembo zonse zomwe zimatenga umlauts. Onani ntchito ya Cholembera zitsulo [zopindidwa] ndi Bryan Rasmussen.

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

Ndipo, ngati atapatsidwa mawu akuti "Motley Crue akulamulira, rock on dudes!", abwereranso "Mötley Crüe rüles, röck ön düdes!" Mwachiwonekere, munthu akhoza kukhala ndi mitundu yonse ya ntchito zoseketsa za ntchitoyi. Ngati ndi inu, ndiye kuti nkhaniyi ya TVTropes iyenera kukupatsani kudzoza kochuluka. Kugwiritsa ntchito CSS Ndi XPath Kumbukirani chifukwa chathu chachikulu chogwiritsira ntchito osankhidwa a CSS pamodzi ndi XPath: CSS imamvetsetsa bwino lomwe kalasi, pomwe zabwino zomwe mungachite ndi XPath ndikufanizira ndi zingwe zamakalasi. Izi zigwira ntchito nthawi zambiri. Koma ngati mutakumana ndi vuto lomwe, titi, wina adapanga makalasi otchedwa .primaryLinks ndi .primaryLinks2 ndipo mukugwiritsa ntchito XPath kuti mupeze .primaryLinks kalasi, ndiye kuti mutha kukumana ndi mavuto. Malingana ngati palibe chopusa ngati chimenecho, mutha kugwiritsa ntchito XPath. Koma ndine wachisoni kunena kuti ndagwirapo ntchito kumalo kumene anthu amachita zinthu zopusa ngati zimenezo. Nayi chiwonetsero china chogwiritsa ntchito CSS ndi XPath palimodzi. Imawonetsa zomwe zimachitika tikamagwiritsa ntchito kachidindo kuyendetsa XPath pamfundo yomwe siili chikalatacho. Onani Cholembera css ndi xpath palimodzi [zopindidwa] ndi Bryan Rasmussen. Funso la CSS ndi .relatedarticles a, lomwe limatenga zinthu ziwiri mu div yomwe yapatsidwa kalasi ya .relatedarticles. Pambuyo pake pali mafunso atatu "oyipa", ndiye kuti, mafunso omwe sachita zomwe tikufuna kuti achite akamathamanga ndi zinthu izi ngati mfundo. Ndikhoza kufotokoza chifukwa chake akuchita mosiyana ndi momwe mungaganizire. Mafunso atatu oyipa omwe akufunsidwa ndi awa:

//text(): Kubweza mawu onse mu chikalatacho. //a/text(): Kubweza mawu onse mkati mwa maulalo mu chikalatacho. ./a/text(): Palibe zotsatira.

Chifukwa cha zotsatira izi ndikuti ngakhale nkhani yanu ndi zinthu zomwe zabwezedwa kuchokera ku funso la CSS, // zimatsutsana ndi chikalata chonse. Uku ndiye mphamvu ya XPath; CSS siyingapite kuchokera ku node kupita kwa kholo kenako kupita kwa mchimwene wa kholo limenelo, ndikuyenda kupita ku mbadwa ya m'baleyo. Koma XPath akhoza. Panthawiyi, ./ imafunsa ana a mfundo zamakono, pamene dontho (.) likuyimira mfundo yomwe ilipo, ndipo kutsogolo slash (/) kumayimira kupita ku mfundo ya mwana - kaya ndi chikhalidwe, chinthu, kapena malemba amatsimikiziridwa ndi gawo lotsatira la njira. Koma palibe mwana chinthu chosankhidwa ndi funso la CSS, motero funsoli silibweza kalikonse. Pali mafunso atatu abwino pachiwonetsero chomaliza:

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

Funso lokhazikika-malo likuwonetsa kugwiritsa ntchito kwa XPath, komanso kukonza vuto lomwe likuphatikizidwa ndi mafunso ena. HTML imapangidwa motere:

Kusintha Mayeso Anu Ndi Selenium WebDriver

Funsoli limabweretsa chakudya chamzere kumayambiriro ndi kumapeto kwa node,ndi normalize-space imachotsa izi. Kugwiritsa ntchito ntchito iliyonse ya XPath yomwe imabweza china chake kupatula boolean yokhala ndi XPath yolowera imagwira ntchito zina. Chiwonetsero chotsatirachi chikuwonetsa zitsanzo zingapo: Onani zitsanzo za Pen xpath [zolemba] ndi Bryan Rasmussen. Chitsanzo choyamba chikuwonetsa vuto lomwe muyenera kusamala nalo. Makamaka, ndi code zotsatirazi:

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

…kubweza chingwe chimodzi:

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

Ndizomveka, chabwino? Izi sizikubweza mndandanda koma zingwe kapena manambala amodzi. Kuyendetsa ntchitoyi paliponse ndi zotsatira zambiri kumangobweretsa zotsatira zoyamba. Chotsatira chachiwiri chikuwonetsa zomwe tikufunadi:

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

Zomwe zimabweretsa mndandanda wa zingwe ziwiri:

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

Ntchito za XPath zitha kukhazikitsidwa ngati ntchito mu JavaScript. Chifukwa chake, ngati tikudziwa mawonekedwe a URL ya Smashing Magazine, titha kuchita izi (kugwiritsa ntchito ma template literals ndikulimbikitsidwa): `masulira ( chingwe chaching'ono ( substring-after(./@href, 'www.smashingmagazine.com/') , 9), '/','')'

Izi zafika povuta kwambiri mpaka zimafunika ndemanga zofotokozera zomwe zimachita: tengani ulalo wonse kuchokera ku href pambuyo pa www.smashingmagazine.com/, chotsani zilembo zisanu ndi zinayi zoyamba, kenako masulirani slash (/) mopanda kanthu kuti muchotse slash yomaliza. Zotsatira zake:

["mawonekedwe-kuyesa-selenium-webdriver","zotsatira-zoyesa-zokha-zotsatira-zimathandizira kupezeka"]

Zambiri Zogwiritsa Ntchito XPath XPath imatha kuwunikira pakuyesa. Chifukwa chake sichovuta kuwona, popeza XPath imatha kugwiritsidwa ntchito kupeza chilichonse mu DOM, kuchokera pamalo aliwonse mu DOM, pomwe CSS singathe. Simungadalire makalasi a CSS kukhala osasunthika m'makina amakono ambiri, koma ndi XPath, timatha kupanga machesi olimba kuti afotokoze zomwe zili mu chinthucho, mosasamala kanthu za kusintha kwa DOM. Pakhala pali kafukufuku wokhudza njira zomwe zimakulolani kupanga mayeso olimba a XPath. Palibe choyipa kuposa kuyesa kuyesa ndikulephera chifukwa chosankha CSS sichigwiranso ntchito chifukwa china chake chasinthidwa kapena kuchotsedwa. XPath imakhalanso yabwino kwambiri pakuchotsa malo angapo. Pali njira zingapo zogwiritsira ntchito mafunso a XPath kuti mufanane ndi chinthu. N'chimodzimodzinso ndi CSS. Koma mafunso a XPath amatha kuyika zinthu m'njira yolunjika yomwe imachepetsa zomwe zimabwezedwa, kukulolani kuti mupeze machesi omwe pangakhale machesi angapo. Mwachitsanzo, titha kugwiritsa ntchito XPath kubweza chinthu china cha h2 chomwe chili mkati mwa div yomwe imangotsatira mbale yachibale yomwe ilinso ndi chithunzi cha mwana chokhala ndi data-testID="mtsogoleri" pamenepo:

simukumva mutuwu

Musamamvenso mutuwu

Mutu wa chithunzi cha mtsogoleri

Ili ndiye funso: document.queryXPaths(` // div[ m'bale wotsatira::div[1] /img[@data-testID='mtsogoleri'] ] /h2/ mawu () ``);

Tiyeni tiyike mu demo kuti tiwone momwe zonsezi zimakhalira limodzi: Onani Funso la Pen Complex H2 [lopindidwa] ndi Bryan Rasmussen. Choncho, inde. Pali njira zambiri zomwe zingatheke ku chinthu chilichonse pamayeso pogwiritsa ntchito XPath. Kusintha kwa XSLT 1.0 Ndanena koyambirira kuti gulu la Chrome likukonzekera kuchotsa chithandizo cha XSLT 1.0 kuchokera kwa osatsegula. Izi ndizofunikira chifukwa XSLT 1.0 imagwiritsa ntchito pulogalamu yokhazikika ya XML pakusintha zolemba zomwe, zimadalira XPath 1.0, zomwe zimapezeka m'masakatuli ambiri. Izi zikachitika, tidzataya gawo lalikulu la XPath. Koma chifukwa chakuti XPath ndiyabwino kwambiri polemba mayeso, ndikuwona kuti sizingatheke kuti XPath yonse idzatha posachedwa. Izi zati, ndazindikira kuti anthu amachita chidwi ndi chinthu chikachotsedwa. Ndipo ndizowona ngati XSLT 1.0 ikuchotsedwa. Pali zokambirana zonse zomwe zikuchitika ku Hacker News zodzaza ndi zotsutsana ndi kuchotsedwa. Cholembacho ndi chitsanzo chabwino chopanga mabulogu ndi XSLT. Inumutha kudziwerengera nokha zokambiranazo, koma zimalowa momwe JavaScript ingagwiritsire ntchito ngati shim ya XLST kuthana ndi milandu yotere. Ndawonanso malingaliro oti asakatuli agwiritse ntchito SaxonJS, yomwe ndi doko la JavaScript's Saxon XSLT, XQUERY, ndi XPath injini. Ndilo lingaliro losangalatsa, makamaka monga Saxon-JS imagwiritsa ntchito mawonekedwe amakono awa, pomwe palibe msakatuli yemwe amagwiritsa ntchito mtundu uliwonse wa XPath kapena XSLT kupitilira 1.0, ndipo palibe amene amagwiritsa ntchito XQuery. Ndidafikira Norm Tovey-Walsh ku Saxonica, kampani yomwe ili kumbuyo kwa SaxonJS ndi mitundu ina ya injini ya Saxon. Iye anati: "Ngati wogulitsa asakatuli aliyense angafune kutenga SaxonJS ngati poyambira kuphatikiza ukadaulo wamakono wa XML mu msakatuli, tikhala okondwa kukambirana nawo." Norm Tovey-Walsh

Koma anawonjezera: "Ndingadabwe kwambiri ngati wina angaganize kuti kutenga SaxonJS mumpangidwe wake wamakono ndikuyiyika mumsakatuli wosasinthika ingakhale njira yabwino. Wogulitsa osatsegula, mwachibadwa kuti amamanga msakatuli, akhoza kuyandikira kuphatikizana mozama kwambiri kuposa momwe tingathere 'kuchokera kunja'. " Norm Tovey-Walsh

Ndizofunikira kudziwa kuti ndemanga za Tovey-Walsh zidabwera pafupi sabata imodzi isanachitike chilengezo cha XSLT. Mapeto Ndikhoza kumapitirirabe. Koma ndikukhulupirira kuti izi zawonetsa mphamvu ya XPath ndikukupatsani zitsanzo zambiri zowonetsera momwe mungagwiritsire ntchito kukwaniritsa zinthu zazikulu. Ndichitsanzo chabwino kwambiri chaukadaulo wakale pamasamba osatsegula omwe akadali ndi zofunikira zambiri masiku ano, ngakhale simunadziwepo kuti zidalipo kapena simunaganizirepo zofikira. Kuwerenga Mowonjezereka

"Kupititsa patsogolo Kupirira kwa Mayeso Odzipangira Pawebusayiti ndi Chinenero Chachilengedwe" (ACM Digital Library) yolembedwa ndi Maroun Ayli, Youssef Bakouny, Nader Jalloul, ndi Rima KilanyNkhaniyi ili ndi zitsanzo zambiri za XPath polemba mayeso olimba. XPath (MDN)Awa ndi malo abwino kuyamba ngati mukufuna kufotokozera mwatsatanetsatane momwe XPath imagwirira ntchito. XPath Tutorial (ZVON) Ndaona kuti phunziroli ndi lothandiza kwambiri pakuphunzira kwanga, chifukwa cha zitsanzo zambiri komanso mafotokozedwe omveka bwino. XPatherChida ichi chothandizira chimakupatsani mwayi wogwira ntchito mwachindunji ndi code.

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