Na kasance a cikin ci gaba na gaba-gaba na dogon lokaci don ganin wani yanayi na tsawon shekaru: ƙananan masu haɓakawa suna aiki tare da sabon tsarin shirye-shirye ba tare da fahimtar yanayin tarihinsa ba. Yana da, ba shakka, cikakkiyar fahimta don rashin sanin wani abu. Yanar gizo babban wuri ne mai nau'in fasaha da ƙwarewa daban-daban, kuma ba koyaushe muke sanin abin da ba mu sani ba. Koyo a wannan fagen tafiya ce mai gudana maimakon wani abu da ya faru sau ɗaya kuma ya ƙare. Harka a cikin batu: Wani a cikin ƙungiyara ya tambayi ko zai yiwu a faɗi idan masu amfani suna kewayawa daga wani shafi na musamman a cikin UI. Na yi nuni da taron JavaScript kafin saukewa. Amma wadanda suka magance wannan a baya sun san hakan na iya yiwuwa saboda an buge su da faɗakarwa game da bayanan da ba a adana a wasu rukunin yanar gizon ba, wanda kafin saukar da shi shine yanayin amfani na yau da kullun. Na kuma nuna shafin Ɓoye da ganuwa Canza abubuwan da suka faru ga abokin aikina don kyakkyawan ma'auni. Ta yaya na sani game da wannan? Domin ya zo a wani aikin, ba don na yi nazarinsa ba lokacin da na fara koyon JavaScript. Gaskiyar ita ce, tsarin zamani na gaba-gaba yana tsaye a kan kafadu na ƙwararrun ƙwararrun fasahar da suka gabace su. Suna taƙaita ayyukan ci gaba, sau da yawa don ingantaccen ƙwarewar haɓakawa wanda ke ragewa, ko ma yana kawar da, buƙatar sani ko taɓa abin da al'ada ta kasance mahimman ra'ayoyi na gaba-gaba kowa ya kamata ya sani. Yi la'akari da Samfurin Abun CSS (CSSOM). Kuna iya tsammanin duk wanda ke aiki a cikin CSS da JavaScript yana da tarin gogewar CSSOM na hannu, amma hakan ba koyaushe zai kasance ba. Akwai aikin React don rukunin yanar gizon e-kasuwanci da na yi aiki a kai inda muke buƙatar loda takardar salo don mai ba da biyan kuɗi da aka zaɓa a halin yanzu. Matsalar ita ce, rubutun salon yana lodawa akan kowane shafi lokacin da ake buƙata kawai akan takamaiman shafi. Mai haɓakawa da aka ɗawainiya da yin hakan bai taɓa loda wani salo mai ƙarfi ba. Har ila yau, wannan abu ne da ake iya fahimta sosai lokacin da React ya kawar da tsarin al'ada da ka iya cimmawa. Wataƙila CSSOM ba wani abu bane da kuke buƙata a cikin aikinku na yau da kullun. Amma yana yiwuwa za ku buƙaci mu'amala da shi a wani lokaci, ko da a cikin lokaci ɗaya. Waɗannan abubuwan sun ƙarfafa ni don rubuta wannan labarin. Akwai fasalolin gidan yanar gizo da yawa da fasaha a cikin daji waɗanda ba za ku taɓa taɓawa kai tsaye a cikin aikinku na yau da kullun ba. Wataƙila kun kasance sababbi ga ci gaban yanar gizon kuma ba ku san su ba saboda kun kutsa cikin ƙayyadaddun ƙayyadaddun tsarin da baya buƙatar ku san shi sosai, ko ma kwata-kwata. Ina magana musamman game da XML, wanda yawancin mu mun san tsohon yare ne wanda bai bambanta da HTML ba. Ina kawo wannan ne saboda tattaunawa ta WHATWG na baya-bayan nan da ke ba da shawarar cewa ya kamata a cire wani yanki mai mahimmanci na tarin XML da aka sani da shirye-shiryen XSLT daga masu bincike. Wannan shine ainihin irin tsofaffi, fasahar da muke da ita tsawon shekaru waɗanda za a iya amfani da su don wani abu mai amfani kamar yanayin CSSOM na ƙungiyar tawa. Shin kun yi aiki tare da XSLT a baya? Bari mu ga idan mun dogara sosai a cikin wannan tsohuwar fasaha kuma mu yi amfani da fasalulluka a waje da mahallin XML don magance matsalolin duniya a yau. XPath: Babban API Mafi mahimmancin fasaha na XML wanda shine watakila mafi amfani a waje da madaidaicin hangen nesa XML shine XPath, harshen tambaya wanda ke ba ka damar nemo kowane kumburi ko sifa a cikin bishiyar alama mai tushe guda ɗaya. Ina da ƙauna ta sirri ga XSLT, amma wannan kuma ya dogara da XPath, kuma ƙaunar mutum dole ne a ajiye shi a gefe a matsayin mahimmanci. Hujja don cire XSLT ba ya yin wani ambaton XPath, don haka ina tsammanin har yanzu an yarda. Wannan yana da kyau saboda XPath shine tsakiya kuma mafi mahimmancin API a cikin wannan rukunin fasaha, musamman lokacin ƙoƙarin neman wani abu don amfani da waje na amfani da XML na yau da kullun. Yana da mahimmanci saboda, yayin da za a iya amfani da masu zaɓin CSS don nemo yawancin abubuwan da ke cikin shafinku, ba za su iya samun su duka ba. Bugu da ƙari, ba za a iya amfani da masu zaɓin CSS ba don nemo wani kashi dangane da matsayinsa na yanzu a cikin DOM. XPath iya. Yanzu, wasunku suna karanta wannan na iya sanin XPath, wasu kuma ba za su iya ba. XPath babban yanki ne mai girma na fasaha, kuma ba zan iya koyar da duk abubuwan yau da kullun ba kuma in nuna muku kyawawan abubuwan da za ku yi da shi a cikin labarin guda kamar wannan. A zahiri na yi ƙoƙarin rubuta wannan labarin, amma matsakaiciyar buga Mujallar Smashing ba ta wuce kalmomi 5,000 ba. Na riga na wuce fiye daKalmomi 2,000 yayin da rabi kawai ta hanyar asali. Don haka, zan fara yin abubuwa masu kyau tare da XPath kuma in ba ku wasu hanyoyin haɗin da za ku iya amfani da su don abubuwan yau da kullun idan kun sami wannan abu mai ban sha'awa. Haɗa XPath & CSS XPath na iya yin abubuwa da yawa waɗanda masu zaɓin CSS ba za su iya ba yayin neman abubuwa. Amma masu zaɓin CSS kuma suna iya yin ƴan abubuwan da XPath ba za su iya ba, wato abubuwan tambaya ta sunan aji.
CSS XPath .class na /* [ya ƙunshi (@class, "myClass")]
A cikin wannan misalin, CSS yana tambayar abubuwan da suka ƙunshi sunan aji na .myClass. A halin yanzu, misalin XPath yana tambayar abubuwan da suka ƙunshi ajin sifa tare da kirtani "myClass". A wasu kalmomi, yana zaɓar abubuwa tare da myClass a kowace sifa, gami da abubuwan da ke da sunan aji na .myClass - da kuma abubuwan da ke da "myClass" a cikin kirtani, kamar .myClass2. XPath ya fi girma a wannan ma'anar. Don haka, a'a. Ba na ba da shawarar cewa ya kamata mu jefar da CSS kuma mu fara zaɓar duk abubuwa ta hanyar XPath ba. Wannan ba batun bane. Ma'anar ita ce, XPath na iya yin abubuwan da CSS ba zai iya ba kuma har yanzu yana iya zama da amfani sosai, duk da cewa tsohuwar fasaha ce a cikin tarin burauzar kuma maiyuwa ba zai zama a bayyane ba a kallon farko. Bari mu yi amfani da fasahohin biyu tare ba kawai saboda za mu iya ba, amma saboda za mu koyi wani abu game da XPath a cikin tsari, yin shi wani kayan aiki a cikin tarin ku - wanda watakila ba ku sani ba ya kasance a can! Matsalar ita ce hanyar daftarin aikin JavaScript. kimanta da hanyoyin zaɓin tambaya daban-daban da muke amfani da su tare da CSS APIs don JavaScript ba su dace ba. Na yi API ɗin tambaya mai dacewa don fara mu, ko da yake na yarda, ban sanya tunani mai yawa a ciki ba tunda tashi daga abin da muke yi a nan. Ga misali mai sauƙi mai sauƙi na mai gina tambaya mai sake amfani da shi: Dubi Pen queryXPath [forked] na Bryan Rasmussen. Na ƙara hanyoyi biyu akan abin daftarin aiki: queryCSSSelectors (wanda shine ainihin querySelectorAll) da queryXPaths. Duk waɗannan suna mayar da abin da ake nema sakamakon:
{ tambayaType: nodes | zaren | lamba | boolean, sakamako: kowane[] // abubuwan html, abubuwan xml, kirtani, lambobi, booleans, queryCSSSelectors: (tambaya: string, gyara: boolean) => Sakamakon tambaya, queryXpaths: (tambaya: string, gyara: boolean) => Sakamakon tambaya }
TambayoyiCSSSelectors da queryXpaths suna gudanar da tambayar da kuke ba su akan abubuwan da ke cikin jerin sakamakon, muddin sakamakon tsararru na nau'in nodes ne, ba shakka. In ba haka ba, zai dawo da sakamakon tambaya tare da tsararru mara komai da nau'in nodes. Idan an saita kayan gyara zuwa gaskiya, ayyukan zasu canza nasu sakamakon binciken. Babu wani yanayi da ya kamata a yi amfani da wannan a cikin yanayin samarwa. Ina yin haka ne kawai don nuna tasiri iri-iri na amfani da API ɗin tambaya guda biyu tare. Misali Tambayoyi Ina so in nuna 'yan misalai na tambayoyin XPath daban-daban waɗanda ke nuna wasu abubuwa masu ƙarfi da za su iya yi da kuma yadda za a iya amfani da su a maimakon wasu hanyoyin. Misali na farko shine //li/text(). Wannan yana tambayar duk abubuwan da ake buƙata kuma suna dawo da nodes ɗin su na rubutu. Don haka, idan za mu tambayi HTML mai zuwa:
- daya
- biyu
- uku
…wannan shine abin da aka mayar:
{"queryType":"xpathEvaluate","sakamako":["daya","biyu","uku"],"resultType":"string"}
Wato muna samun tsararru kamar haka: ["ɗaya","biyu","uku"]. A al'ada, kuna buƙatar abubuwan li don samun hakan, juya sakamakon wannan tambayar zuwa tsararru, taswirar tsararrun, sannan ku dawo da kullin rubutu na kowane kashi. Amma za mu iya yin hakan a takaice tare da XPath: document.queryXPaths("//li/text()").sakamako.
Lura cewa hanyar samun kumburin rubutu shine amfani da rubutu(), wanda yayi kama da sa hannun aiki - kuma haka ne. Yana mayar da kullin rubutu na wani kashi. A cikin misalinmu, akwai abubuwa uku a cikin alamar, kowanne yana ɗauke da rubutu ("ɗaya", "biyu", da "uku").
Bari mu kalli ƙarin misali ɗaya na tambaya () rubutu. Ka ɗauka wannan shine alamar mu:
Bari mu rubuta tambaya mai mayar da ƙimar sifa href: document.queryXPaths("//a[rubutu() = 'Sign In']/@href").sakamako.
Wannan tambaya ce ta XPath akan daftarin aiki na yanzu, kamar misali na ƙarshe, amma wannan lokacin muna dawo da sifa ta href ta hanyar haɗin gwiwa (wani kashi) wanda ke ɗauke da rubutun “Sign In”. Ainihin ya dawosakamakon shine ["/login.html"]. Bayanin Ayyuka na XPath Akwai ayyuka da yawa na XPath, kuma wataƙila ba ku saba da su ba. Akwai da yawa, ina tsammanin, waɗanda ya kamata a sani game da su, gami da masu zuwa:
farawa-daIdan rubutu ya fara da wani misali na rubutu, farawa-da(@href, 'http:') zai dawo gaskiya idan sifa ta href ta fara da http:. Ya ƙunshi Idan rubutu ya ƙunshi wani misali na rubutu, ya ƙunshi (rubutu(), "Smashing Magazine") zai dawo da gaskiya idan kullin rubutu ya ƙunshi kalmomin "Mujallar Fasa" a ciki a ko'ina. Count yana mayar da kididdigar matches nawa ne zuwa tambaya. Misali, ƙidaya (//* [farawa-da(@href, 'http:']) yana mayar da ƙididdige adadin hanyoyin haɗin yanar gizo nawa a cikin kullin mahallin suna da abubuwa tare da sifa href wanda ya ƙunshi rubutun farawa da http:. Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙarƙashin Ƙira azaman hujja ne. Misali, ƙaramin igiya ("rubutu na", 2, 4) yana mayar da "y t". ƙananan igiyoyi-kafin yana mayar da ɓangaren kirtani kafin wani kirtani. Misali, substing-kafin ("rubutu na", "") yana mayar da "nawa". Hakazalika, ƙaramin kirtani-kafin ("hi","bye") yana dawo da fankon kirtani. substring-bayan Yana mayar da ɓangaren kirtani bayan wani kirtani. Misali, substing-bayan ("rubutu na", "") yana mayar da "rubutu". Hakazalika, ƙaramin kirtani-bayan("hi","bye") yana dawo da kirtani mara komai. daidaita-sarari Yana mayar da kirtan muhawara tare da farar sararin samaniya wanda aka daidaita ta hanyar cire jagora da bin sawu da maye gurbin jerin haruffan sararin samaniya ta sarari guda. not mayar da boolean gaskiya idan hujjar karya ce, in ba haka ba karya ce. gaskiya ya dawo boolean gaskiya. karya yana dawo da bolean karya. concat Abu ɗaya da JavaScript concat, sai dai ba ku gudanar da shi azaman hanya akan kirtani. Madadin haka, kun saka duk igiyoyin da kuke son haɗawa. Tsawon kirtaniWannan ba daidai yake da tsayin kirtani na JavaScript ba, amma yana dawo da tsawon kirtan da aka ba shi azaman hujja. Wannan yana ɗaukar kirtani kuma yana canza hujja ta biyu zuwa hujja ta uku. Misali, fassara ("abcdef", "abc", "XYZ") yana fitar da bayanan XYZdef.
Baya ga waɗannan ayyuka na XPath na musamman, akwai wasu ayyuka da yawa waɗanda ke aiki iri ɗaya da takwarorinsu na JavaScript - ko takwarorinsu a cikin kowane yaren shirye-shirye - waɗanda wataƙila za ku sami amfani, kamar bene, rufi, zagaye, jimla, da sauransu. Demo mai zuwa yana kwatanta kowane ɗayan waɗannan ayyuka: Dubi Ayyukan Lamba na Pen XPath [wanda aka yi wa cokali mai yatsa] na Bryan Rasmussen. Lura cewa, kamar yawancin ayyukan sarrafa kirtani, yawancin masu ƙididdigewa suna ɗaukar shigarwa guda ɗaya. Wannan, ba shakka, saboda ya kamata a yi amfani da su don yin tambaya, kamar yadda a cikin misalin XPath na ƙarshe: //li[bene (rubutu ()) > 250]/@val
Idan kun yi amfani da su, kamar yadda yawancin misalan ke yi, za ku ƙare da gudu a kan kullin farko wanda ya dace da hanyar. Hakanan akwai wasu nau'ikan ayyukan jujjuyawar da yakamata ku guji saboda JavaScript ya riga ya sami nasa matsalolin juyawa. Amma ana iya samun lokutan da kuke son canza kirtani zuwa lamba don duba ta akan wata lamba. Ayyukan da ke saita nau'in wani abu sune boolean, lamba, kirtani, da kumburi. Waɗannan su ne mahimman bayanan bayanan XPath. Kuma kamar yadda zaku iya tunanin, yawancin waɗannan ayyuka ana iya amfani da su akan nau'ikan bayanai waɗanda ba nodes na DOM ba. Misali, substring-bayan yana ɗaukar kirtani kamar yadda muka riga muka rufe, amma yana iya zama kirtani daga sifa href. Hakanan zai iya zama kirtani kawai:
const testSubstringAfter = document.queryXPaths("substring-bayan('hello duniya','')");
A bayyane yake, wannan misalin zai dawo mana da jerin sakamakon a matsayin ["duniya"]. Don nuna wannan a aikace, na yi shafin demo ta amfani da ayyuka akan abubuwan da ba na DOM ba: Dubi Pen queryXPath [forked] na Bryan Rasmussen. Ya kamata ku lura da abin mamaki na aikin fassarar, wanda shine cewa idan kuna da hali a cikin gardama ta biyu (watau jerin haruffan da kuke son fassara) kuma babu wani hali da ya dace don fassarawa, wannan halin yana cirewa daga fitarwa. Don haka, wannan:
fassara('Sannu, Sunana Inigo Montoya, kun kashe mahaifina, ku shirya ya mutu','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','*')
…sakamako a cikin kirtani, gami da sarari: ["*"]
Wannan yana nufin cewa ana fassara harafin "a" zuwa alamar alama (*), amma duk sauran haruffan da ba su da fassarar da aka ba da kirtani na manufa gaba ɗaya an cire su. Farin sararin samaniya shine abin da ya rage manatsakanin haruffan “a” da aka fassara. Sannan kuma, wannan tambayar:
fassara('Sannu, Sunana Inigo Montoya, ka kashe mahaifina, ka shirya ya mutu','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','******************************************))
...ba shi da matsala kuma yana fitar da sakamako mai kama da haka:
"****************************************
Yana iya buge ku cewa babu wata hanya mai sauƙi a cikin JavaScript don yin daidai abin da aikin fassarar XPath ke yi, kodayake ga yawancin lokuta masu amfani, maye gurbin All tare da maganganun yau da kullun na iya ɗaukar shi. Kuna iya amfani da wannan hanyar da na nuna, amma hakan yana da kyau idan duk abin da kuke so shine fassara kirtani. Demo mai zuwa yana kunshe aikin fassarar XPath don samar da sigar JavaScript: Dubi aikin fassarar alkalami [mai yatsa] na Bryan Rasmussen. A ina za ku iya amfani da wani abu kamar wannan? Yi la'akari da boye-boye na Kaisar Cipher tare da wuri uku (misali, boye-boye na saman-layi daga 48 BC):
fassara ("Kaisar yana shirin ketare Rubicon!", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", "XYZABCDEFGHIJKLMNOPQRSTUVWxyzabcdefghijklmnopqrstuvw")
Rubutun shigarwa "Kaisar yana shirin ketare Rubicon!" sakamakon "Zxbpxo fp mixkkfkd ql zolp qeb Oryfzlk!" Don ba da wani misali mai sauri na dama daban-daban, na yi aikin ƙarfe wanda ke ɗaukar shigarwar kirtani kuma yana amfani da aikin fassara don mayar da rubutu, gami da duk haruffan da suka ɗauki umlauts. Dubi aikin ƙarfe na alƙalami [forked] na Bryan Rasmussen.
irin karfe = (str) => { mayar da fassarar (str, "AOUaou", "ÄÖÜäöü"); }
Kuma, idan aka ba da rubutun “Dokokin Motley Crue, rock on dudes!”, ya dawo “Mötley Crüe rüles, röck ön düdes!” Babu shakka, mutum na iya samun kowane irin amfani da wannan aikin. Idan kai ne, to ya kamata wannan labarin na TVTropes ya ba ku kwarin gwiwa da yawa. Amfani da CSS Tare da XPath Tuna babban dalilinmu na amfani da masu zaɓen CSS tare da XPath: CSS ya fahimci abin da aji yake, yayin da mafi kyawun abin da za ku iya yi tare da XPath shine kwatancen sifa na aji. Wannan zai yi aiki a mafi yawan lokuta. Amma idan za ku taɓa shiga cikin wani yanayi inda, a ce, wani ya ƙirƙiri azuzuwan mai suna .primaryLinks da .primaryLinks2 kuma kuna amfani da XPath don samun aji na .primaryLinks, to kuna iya fuskantar matsaloli. Muddin babu wani wauta irin wannan, tabbas za ku yi amfani da XPath. Amma ina baƙin ciki in ba da rahoton cewa na yi aiki a wuraren da mutane suke yin irin waɗannan abubuwa na wauta. Ga wani demo ta amfani da CSS da XPath tare. Yana nuna abin da ke faruwa idan muka yi amfani da lambar don gudanar da XPath akan kullin mahallin da ba kullin takaddar ba. Dubi Pen css da xpath tare [forked] by Bryan Rasmussen. Tambayar CSS ita ce .relatedarticles a, wanda ke debo abubuwa guda biyu a cikin div da aka sanya ajin .related articles. Bayan haka akwai tambayoyin "marasa kyau" guda uku, wato, tambayoyin da ba sa yin abin da muke so su yi yayin da suke gudana tare da waɗannan abubuwan a matsayin kullin mahallin. Zan iya bayyana dalilin da yasa suke yin hali daban fiye da yadda kuke zato. Munanan tambayoyi guda uku da ake tambaya su ne:
//rubutu(): Yana dawo da duk rubutun da ke cikin takaddar. //a/rubutu(): Yana dawo da duk rubutun cikin mahaɗin da ke cikin takaddar. ./a/text(): Ba ya dawo da sakamako.
Dalilin waɗannan sakamakon shine yayin da mahallin ku abubuwa ne da aka dawo daga tambayar CSS, // ya saba wa duk takaddun. Wannan shine ƙarfin XPath; CSS ba zai iya tafiya daga kulli har zuwa kakanni sannan zuwa ga dan uwan wannan kakan, kuma ya gangara zuwa zuriyar wannan dan uwan. Amma XPath zai iya. A halin yanzu, ./ yana tambayar yaran kumburi na yanzu, inda digon (.) ke wakiltar kumburin yanzu, kuma slash na gaba (/) yana wakiltar zuwa ga kumburin yara - ko sifa ce, kashi, ko rubutu an ƙaddara ta ɓangaren gaba na hanya. Amma babu wani abin da CSS ya zaɓa, don haka tambayar ita ma ba ta dawo da komai ba. Akwai kyawawan tambayoyi guda uku a cikin wannan demo na ƙarshe:
.// rubutu(), ./rubutu(), daidaita sarari (./rubutu()).
Tambayar daidaita sararin samaniya tana nuna amfani da aikin XPath, amma kuma yana gyara matsalar da aka haɗa cikin sauran tambayoyin. An tsara HTML ɗin kamar haka:
Yin sarrafa Gwajin Siffofin ku Tare da Selenium WebDriver
Tambayar tana mayar da ciyarwar layi a farkon da ƙarshen kumburin rubutu,kuma normalize-sarari yana kawar da wannan. Amfani da kowane aikin XPath wanda ke dawo da wani abu ban da boolean tare da shigar da XPath ya shafi wasu ayyuka. Demo mai zuwa yana nuna misalai da dama: Dubi misalan ayyukan Pen xpath [forked] na Bryan Rasmussen. Misali na farko yana nuna matsala da ya kamata ku kula da ita. Musamman, lambar mai zuwa:
document.queryXPaths("substring-bayan(//a/@href,'https://')");
… yana mayar da kirtani ɗaya:
"www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/"
Yana da ma'ana, dama? Waɗannan ayyukan ba sa dawo da jeri-jeri sai dai kirtani ɗaya ko lambobi ɗaya. Gudun aikin a ko'ina tare da sakamako masu yawa kawai yana mayar da sakamakon farko. Sakamako na biyu yana nuna ainihin abin da muke so:
document.queryCSSSelectors("a").queryXPaths("substring-bater(./@href,'https://')");
Wanda ya dawo da tsararrun igiyoyi biyu:
["www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/", "www.smashingmagazine.com/2022/11/automated-test-results-improve-accessibility/"]
Ana iya shigar da ayyukan XPath kamar ayyuka a cikin JavaScript. Don haka, idan mun san tsarin URL ɗin Mujallar Smashing, za mu iya yin waɗannan (amfani da ainihin samfurin ana ba da shawarar): `fassara substring ( substring-bayan (./@href, 'www.smashingmagazine.com/') ,9), '/','')'
Wannan yana samun ɗan rikitarwa sosai har yana buƙatar sharhin da ke kwatanta abin da yake yi: Ɗauki duk URL ɗin daga sifa na href bayan www.smashingmagazine.com/, cire haruffa tara na farko, sannan ku fassara halin slash (/) gaba ba komai ba don kawar da slash gaba mai ƙarewa. Sakamakon tsararru:
["fasalin-gwajin-selenium-webdriver","sakamakon-gwajin-gwaji-sakamakon-inganta-accessibility"]
Ƙarin Abubuwan Amfani da XPath XPath na iya haskaka gaske a gwaji. Dalilin ba shi da wahala a gani, kamar yadda za a iya amfani da XPath don samun kowane nau'i a cikin DOM, daga kowane matsayi a cikin DOM, yayin da CSS ba zai iya ba. Ba za ku iya ƙidaya azuzuwan CSS waɗanda suka yi daidai ba a yawancin tsarin gini na zamani, amma tare da XPath, muna iya yin ƙarin matches masu ƙarfi dangane da abin da abun cikin rubutun wani abu yake, ba tare da la'akari da canjin tsarin DOM ba. An yi bincike kan dabarun da ke ba ku damar yin gwaje-gwajen XPath masu jurewa. Babu wani abu da ya fi muni fiye da samun gwaje-gwajen da suka fashe da kasawa kawai saboda mai zaɓin CSS ba ya aiki saboda an canza wani abu ko cire suna. XPath kuma yana da girma sosai a hako mai gano wuri da yawa. Akwai fiye da hanya ɗaya don amfani da tambayoyin XPath don dacewa da wani abu. Haka abin yake ga CSS. Amma tambayoyin XPath na iya shiga cikin abubuwa ta hanyar da aka fi niyya wanda ke iyakance abin da ake dawowa, yana ba ku damar nemo takamaiman wasa inda za a iya samun matches da yawa. Misali, zamu iya amfani da XPath don dawo da takamaiman nau'in h2 wanda ke ƙunshe a cikin div wanda nan da nan ya biyo bayan ɗan'uwan div wanda, bi da bi, ya ƙunshi nau'in hoton yara tare da sifa ta data-testID="jagora" a kai:
Kada a sami wannan kanun labarai
Kada ku sami wannan kanun labarai ko
Kan kai ga hoton jagora
Wannan ita ce tambayar: document.queryXPaths(' //div[ mai bin 'yar uwa :: div[1] /img[@data-testID='jagora'] ] /h2/ rubutu() `);
Bari mu shiga cikin demo don ganin yadda duk ya taru: Dubi Tambayar Haɗaɗɗiyar Pen Complex H2 [forked] ta Bryan Rasmussen. Don haka, a. Akwai hanyoyi da yawa masu yuwuwa zuwa kowane abu a cikin gwaji ta amfani da XPath. XSLT 1.0 Ragewa Na ambata da wuri cewa ƙungiyar Chrome tana shirin cire tallafin XSLT 1.0 daga mai binciken. Wannan yana da mahimmanci saboda XSLT 1.0 yana amfani da shirye-shiryen da aka mayar da hankali kan XML don canza takarda wanda, bi da bi, ya dogara da XPath 1.0, wanda shine abin da aka samo a yawancin masu bincike. Lokacin da hakan ya faru, za mu rasa mahimmin ɓangaren XPath. Amma da aka ba da gaskiyar cewa XPath yana da kyau sosai don rubuta gwaje-gwaje, na ga da wuya cewa XPath gaba ɗaya zai ɓace kowane lokaci nan da nan. Wannan ya ce, na lura cewa mutane suna sha'awar wani siffa idan an ɗauke shi. Kuma wannan hakika gaskiya ne a cikin yanayin ƙaddamar da XSLT 1.0. Akwai gabaɗayan tattaunawa da ke faruwa a Hacker News cike da gardama game da lalatawar. Gidan da kansa babban misali ne na ƙirƙirar tsarin rubutun ra'ayin kanka a yanar gizo tare da XSLT. Kaiiya karanta tattaunawar da kanku, amma ya shiga cikin yadda za a iya amfani da JavaScript azaman shim don XLST don ɗaukar irin waɗannan lokuta. Na kuma ga shawarwari cewa masu bincike su yi amfani da SaxonJS, wanda tashar jiragen ruwa ce zuwa JavaScript ta Saxon XSLT, XQUERY, da injunan XPath. Wannan ra'ayi ne mai ban sha'awa, musamman kamar yadda Saxon-JS ke aiwatar da sigar yanzu na waɗannan ƙayyadaddun bayanai, yayin da babu wani mai bincike da ke aiwatar da kowane nau'in XPath ko XSLT fiye da 1.0, kuma babu wanda ke aiwatar da XQuery. Na isa Norm Tovey-Walsh a Saxonica, kamfanin da ke bayan SaxonJS da sauran nau'ikan injin Saxon. Yace: "Idan duk wani mai siyar da burauzar yana da sha'awar ɗaukar SaxonJS a matsayin mafari don haɗa fasahar XML ta zamani a cikin mai binciken, za mu yi farin cikin tattauna shi da su." Norm Tovey-Walsh
Amma kuma ya kara da cewa: "Zan yi mamaki sosai idan wani ya yi tunanin cewa ɗaukar SaxonJS a cikin halin yanzu da kuma jefa shi a cikin ginin mai bincike ba tare da canzawa ba zai zama hanya mai kyau. Mai siyar da mai binciken, ta yanayin gaskiyar cewa suna gina mai binciken, zai iya kusanci haɗin kai a matakin zurfi fiye da yadda za mu iya 'daga waje'. " - Norm Tovey-Walsh
Yana da kyau a lura cewa maganganun Tovey-Walsh sun zo ne game da mako guda kafin sanarwar yankewar XSLT. Kammalawa Zan iya ci gaba da ci gaba. Amma ina fata wannan ya nuna ikon XPath kuma ya ba ku misalai da yawa da ke nuna yadda ake amfani da shi don cimma manyan abubuwa. Kyakkyawan misali ne na tsofaffin fasaha a cikin tarin burauza wanda har yanzu yana da amfani mai yawa a yau, koda kuwa ba ku taɓa sanin akwai shi ba ko kuma ba ku taɓa tunanin isa gare ta ba. Karin Karatu
"Haɓaka Ƙaddamar da Gwajin Yanar Gizo ta atomatik tare da Harshen Halitta" (ACM Digital Library) na Maroun Ayli, Youssef Bakouny, Nader Jalloul, da Rima KilanyWannan labarin yana ba da misalai na XPath da yawa don rubuta jarrabawar juriya. XPath (MDN) Wannan kyakkyawan wuri ne don farawa idan kuna son bayanin fasaha da ke bayyana yadda XPath ke aiki. Koyarwar XPath (ZVON) Na sami wannan koyawa ta zama mafi taimako a cikin koyo na, godiya ga ɗimbin misalai da cikakkun bayanai. XPatherWannan kayan aiki mai mu'amala yana ba ku damar aiki kai tsaye tare da lambar.