Loen kaleuh lam pengembangan front-end cukop trep keu lon kalon tren seulama meuthon-thon: pengembang nyang leubeh muda bekerja ngen paradigma pemrograman baroe tanpa meuphom konteks sejarah jih. Teuntèë, djeuët ta meuphom deungon sampôrna keu hana ta teupeuë sapeuë. Web nakeuh teumpat nyang that rayeuk deungon macam-macam keterampilan dan spesialisasi, dan geutanyoe hana sabe ta teupeu peu nyang hana ta teupeu. Peulajaran lam bideuëng njoë nakeuh saboh perdjalanan njang meulanjot nibak saboh hai njang teudjadi sigo dan meuakhé. Case in point: Na sidroe ureung lam tim lon tanyong peu mungken jeut ta teupeu peu pengguna navigasi jioh dari tab tertentu lam UI. Lon tunjok keujadian JavaScript seugohlom unload. Teuma awak nyan nyang ka geuhadapi nyoe seugolom jih geuteupeu nyoe mungken kareuna awak nyan ka jipoh ngon peringatan teuntang data nyang hana disimpan bak situs laen, nyang beforeunload nakeuh kasus penggunaan khas. Lon pih lon tunjok peristiwa pageHide dan visibilityChange keu rakan lon untuk ukuran nyang jroh. Pakriban cara ulôn teupeue keuhai nyan? Sabab nyan teuka lam proyek laen, kon kareuna lon meurunoe ateuh nyan watee awai meurunoe JavaScript. Keunyataan jih nakeuh framework front-end modern teungoh jidong bak bahu raksasa teknologi nyang ka awai nibak awaknyan. Awak nyan geu abstrak praktek pengembangan, seureng that keu pengalaman pengembang nyang leubeh get nyang mengurangi, atawa bahkan menghilangkan, kebutuhan keu geuteupeu atawa geusentuh peu nyang seucara tradisional jeut keu konsep front-end nyang penteng nyang mungken mandum ureung harus geuteupeu. Peutimang Model Objek CSS (CSSOM). Droeneuh mungken neuharap bahwa soe mantong nyang keurija lam CSS ngon JavaScript na sekumpulan pengalaman CSSOM hands-on, tapi nyan hana sabee akan terjadi. Na saboh proyek React keu saboh situs e-commerce nyang lon keureuja dipat kamoe peureulee meu-load stylesheet keu penyedia pembayaran nyang jinoe ka lon pileh. Masalah jih stylesheet nyan teungoh ji load bak tiep-tiep halaman watee nyan hanya beutoi-beutoi ji peureulee bak saboh halaman tertentu. Pengembang nyang geubri tugaih keu geupeugot nyoe hana tom geu-load stylesheet seucara dinamis. Sigo teuk, nyoe jeut dipeuphom watee React abstrak pendekatan tradisional nyang mungken ka droeneuh capai. CSSOM nyan kemungkinan kon sesuatu nyang droeneuh peureulee lam buet siuroe-uroe. Tapi kemungkinan droeneuh akan peureulee berinteraksi ngon jih bak saboh watee, bahkan lam saboh contoh. Pengalaman-pengalaman nyan keuh nyang jeut keu inspirasi keu lon tuleh tulesan nyoe. Na le that fitur web ngon teknologi nyang ka na lam alam liar nyang mungken hana tom droeneuh sentuh langsong lam buet siuroe-uroe. Mungken droeneuh cukop baroe lam pengembangan web dan hana neusadari awak nyan kareuna droeneuh ka teujeubak lam abstraksi kerangka tertentu nyang hana peureulee droeneuh neuteupeu seucara mendalam, atawa bahkan sama sekali. Lon peugah haba khusus teuntang XML, nyang le geutanyoe ta teupeu nakeuh saboh basa jameun nyang hana sama sekali beda ngon HTML. Lon peugot nyoe kareuna diskusi WHATWG baroe-baroe nyoe nyang menunjukkan bahwa saboh bagian signifikan dari tumpukan XML nyang dituri seubagoe pemrograman XSLT harus dipeugadeh dari browser. Nyoe persis lagee teknologi nyang leubeh tuha dan na nyang kaleuh kamoe miliki seulama meuthon-thon nyang jeut dipakek keu sesuatu nyang praktis lagee situasi CSSOM nyang na lam tim lon. Peu na neu keurija ngon XSLT seugolom jih? Mari takalon peu geutanyoe brat that ta sandar bak teknologi tuha nyoe ngon ta manfaatkan fitur-fitur jih di luwa konteks XML keu tahadapi masalah donya nyata saat nyoe. XPath: API Pusat Teknologi XML nyang paleng peunteng nyang mungken paleng meuguna di luwa perspektif XML lurus nakeuh XPath, saboh bahasa query nyang memungkenkan droeneuh neuteumeung node atawa atribut peu mantong lam markup tree ngon saboh elemen root. Lon na rasa sayang pribadi keu XSLT, tapi nyan pih meugantung bak XPath, dan rasa sayang pribadi harus disampingkan lam ranking kepentingan. Argumen keu peugadeh XSLT hana geupeugah sapeuë keu XPath, jadi ulôn kira mantong jeuët. Nyan jroh that sabab XPath nakeuh API pusat dan paleng peunteng lam rangkaian teknologi nyoe, terutama watee ta usaha mita sapeu-sapeu nyang jeut ta pakek di luwa penggunaan XML normal. Nyoë peunténg sabab, seudangkan CSS selector jeuët geungui keu geumita sebagian rayeuk elemen lam laman droëneuh, awak nyan hana jeuët geumita mandum. Seulaén nibak nyan, CSS selector hana jeuet geungui keu geumita saboh elemen meunurot posisi jih jinoe lam DOM. XPath jeut. Jinoe, na nyang baca nyoe mungken ka neuteupeu XPath, dan na nyang hana. XPath nakeuh bidang teknologi nyang cukop rayeuk, dan lon hana jeut that lon peurunoe mandum dasar dan cit lon peudeuh hal-hal nyang keren untuk neu peugot ngon nyan lam saboh artikel lagee nyoe. Lon seubeutoi jih ka lon cuba tuleh artikel nyan, tapi rata-rata publikasi Smashing Magazine hana leubeh dari 5.000 kata. Lon ka bak leubeh dari 10.00.2.000 kata seudangkan mantong teungoh-teungoh dasar. Jadi, lon akan mulai peugot hal-hal yang keren ngon XPath dan lon bri padum-padum boh link yang jeut droneuh pakek untuk dasar-dasar meunyo droneuh meurasa hal-hal nyoe menarik. Meugabongkan XPath ngon CSS . XPath jeut geupeugot le that hai nyang hana jeut geupeugot le pemilih CSS watee geu-query elemen. Teuma CSS selectors pih jeut geupeugot padum-padum boh hal nyang hana jeut XPath, yaitu, query elemen deungon nan glah.

CSS Jalan X .Glah lon /*[meukandong (@glah, "Glahlôn")]

Lam contoh nyoe, CSS ji tanyong elemen nyang na nan glah .myClass. Sementara nyan, contoh XPath ji tanyong elemen nyang na asoe glah atribut ngon string “myClass”. Deungon kata laén, jih jipiléh elemen ngon myClass lam atribut peu mantong, jitamong cit elemen ngon nan glah .myClass — meunan cit elemen ngon “myClass” lam string, lagèe .myClass2. XPath leubeh luah lam arti nyan. Jadi, hana. Lon hana lon sarankan bahwa geutanyoe haroh ta tos CSS dan mulai ta pileh mandum elemen melalui XPath. Nyan kon inti jih. Inti jih nakeuh XPath jeuet jipeubuet hai-hai nyang hana jeuet CSS dan mantong jeuet that meuguna, bah pih nyan nakeuh teknologi nyang leubeh tuha lam tumpukan browser dan mungken hana deuh jeulaih bak pandangan phon. Mari ta pakek dua boh teknologi nyan beusaban kon hanya kareuna tanyoe jeut, tapi kareuna tanyoe akan ta meurunoe sapeu-sapeu teuntang XPath lam proses, tapeugot alat laen lam tumpukan droeneuh — salah saboh nyang mungken droeneuh hana neuteupeu ka na seulama nyoe! Masalah jih nakeuh metode document.evaluate JavaScript ngon berbagai metode pemilih kueri nyang tanyoe pakek ngon API CSS keu JavaScript hana sesuai. Lon ka lon peugot saboh API querying nyang kompatibel untuk ta mulai, meskipun mengaku, lon hana le lon pike keu nyan kareuna nyan saboh penyimpangan dari peu nyang tanyoe peugot disino. Nyoe keuh contoh kerja nyang cukop sederhana dari konstruktor query nyang jeut dipakek lom: Neukalön bak Pen kueriXPath [geucabang] lé Bryan Rasmussen. Lon ka lon tamah dua boh cara bak objek dokumen: queryCSSSelectors (nyang bak dasar jih querySelectorAll) dan queryXPaths. Keudua-dua nyan geubri pulang objek queryResults:

{ Jeunèh kueri: simpul-simpul | taloe | angka | boolean, hasé: peu mantong [] // elemen html, elemen xml, string, angka, boolean, . PeumiléhCSSpeuntanyaan: (peuntanyaan: string, ubah: boolean) => HaséPeutanyaan, JalurXkueri: (peutanyaan: string, ubah: boolean) => HasePeutanyaan }

Fungsi queryCSSSelectors ngon queryXpaths geujalankan query nyang droeneuh bri keu awaknyan ateuh elemen-elemen lam array hasee, asai array hasee nyan dari tipe node, teunte. Meunyo hana, akan geubri pulang queryResult deungon array kosong dan jenis node. Meunyo properti amend nyan geuset keu true, fungsi-fungsi nyan akan geu ubah queryResults droe geuh. Lam keuadaan peuë mantong, nyoe hana jeuët geungui lam lingkungan produksi. Lon peugot lagee nyoe murni untuk lon peudeuh berbagai efek dari penggunaan dua API query nyan bersama. Contoh Pertanyaan Lon keuneuk peuleumah padum-padum boh contoh query XPath nyang beda nyang menunjukkan padum-padum boh hal nyang ampuh nyang jeut awak nyan peugot dan kiban cara awak nyan jeut dipakek bak pengganti pendekatan laen. Contoh phon nakeuh //li/teks (). Nyoe meu-query mandum elemen li dan geubri pulang node teks jih. Jadi, meunyo tanyoe ta query HTML lagee nyoe:

  • saboh
  • dua
  • lhèe boh

...nyoe keuh nyang geubri pulang:

{"JeunehKueri":"xpathEvaluasi","hase":["saboh","dua","lhee"],"jeunehHase":"string"}

Deungon kata laen, tanyoe meurumpok array lagee nyoe: ["sa","dua","lhe"]. Biasa jih, droeneuh akan neu query keu elemen li untuk neuteumeung nyan, neu ubah hasee query nyan jeut keu array, neu peuta array, dan neu balek node teks dari tiep elemen. Teuma geutanyoe jeuet tapeugot nyan leubeh singkat ngon XPath: dokumen.kueriXJalur ("//li/teks ()").hase.

Perhatikan bahwa cara untuk meurumpok node teks nakeuh deungon tapeuguna text(), nyang deuh jih lagee tandatangan fungsi — dan nyan keuh. Nyan geubri pulang node teks saboh elemen. Lam contoh geutanyoe, na lhee boh elemen li lam markup, maseng-maseng na asoe teks ("saboh", "dua", ngon "lhee"). Mari ta kalon saboh teuk contoh query text(). Asumsikan nyoe markup geutanyoe: Tamong lam

Mari tatuleh saboh query nyang geubri pulang nilai atribut href: dokumen.kueriXJalur ("//a [teks () = 'Tamong'] / @ href ").hase.

Nyoe nakeuh query XPath bak dokumen jinoe, saban lagee contoh nyang ka lheuh, tapi kali nyoe ta balek atribut href dari saboh link (saboh elemen) nyang na teks “Sign In”. Nyang seubeutoi jih geugisa .hasé jih nakeuh ["/tamong.html"]. Ikhtisar Fungsi XPath . Na padum-padum boh fungsi XPath, dan droeneuh mungken hana neuturi ngon fungsi nyan. Na padum-padum boh, lon pike, nyang patot ta teupeu, antara laen:

mulai-deungonMeunyo saboh teks dimulai deungon contoh teks laen tertentu, mulai-deungon (@href, 'http:') geubri pulang beutoi meunyo saboh atribut href dimulai deungon http:. containsMeunyo saboh teks meuasoe contoh teks laen tertentu, contains(teks (), "Majalah Smashing") geubri pulang beutoi meunyo saboh node teks meuasoe kata-kata “Majalah Smashing” lam jih dipat mantong. countGeubri hitongan padum boh nyang cocok keu saboh kueri. Miseuëjih, count(//*[mulai-deungon(@href, 'http:']) geubri hitongan padum boh tautan lam node konteks na elemen ngon atribut href nyang meuasoë teks nyang geumulai ngon http:. substringMeubut lagee substring JavaScript, kecuali droeneuh neupasoe string nyan seubagoe argumen. Meuse jih, substring ("teks lon", 2, 4) meujok "y t". substring-beforeGeubri pulang bagian nibak saboh string sigohlom string laen. Miseu jih, substing-seugolom ("teks lon", " ") geubri pulang "lon". Meunan cit, substring-sigolom ("hai","bye") geubri pulang string kosong. substring-afterGeugisa bagian nibak saboh string lheuh string laen. Miseu jih, substing-lheuh ("teks lon", " ") geubri pulang "teks". Meunan cit, substring-lheuh ("hai","bye") geubri pulang string kosong. normalize-spaceGeugisa string argumen ngon spasi puteh nyang ka geunormalisasi ngon cara geupeuleupah spasi puteh di keue ngon di akhe ngon geugantoe urutan karakter spasi puteh ngon saboh spasi. notGeubri lom boolean beutoi meunyo argumen nyan salah, meunyo hana salah. trueGeubri boolean beutoi. palsuMeugisa boolean palsu. concatHal nyang saban ngon concat JavaScript, kecuali droeneuh hana neujak seubagoe metode bak string. Seubalek jih, droeneuh neutamong mandum string nyang neuk neugabong. string-panyangNyoe hana saban ngon panyang-panyang string JavaScript, tapi leubeh geubri pulang panyang string nyang geubri seubagoe argumen. translateNyoe jicok saboh string dan ji ubah argumen keudua jeut keu argumen keu lhee. Miseuëjih, neuterjeumah ("abcdef", "abc", "XYZ") geupeuteubiët XYZdef.

Seulaen fungsi XPath khusus nyoe, na padum-padum boh fungsi laen nyang beukeureuja sama ngon rekan-rekan JavaScript awaknyan — atawa rekan-rekan lam dasar jih bahasa pemrograman peu mantong — nyang mungken cit akan droeneuh teume berguna, lagee lantai, plafon, bulat, jumlah, dan laen-laen. Demo di miyup nyoe geugamba maseng-maseng fungsi nyoe: Neukalön Fungsi Angka Pen XPath [geugarpu] lé Bryan Rasmussen. Perhatikan bahwa, lagee sebagian rayek fungsi manipulasi string, le dari fungsi numerik jicok saboh input. Nyoe, teunte, kareuna awak nyan seharusjih dipakek untuk query, lagee bak contoh XPath yang terakhir: // li [lantai (teks ()) > 250] / @ nilai

Meunyo gata tapeuguna awaknyan, lagee sebagian rayeuk contoh, gata akan akhe jih tapeujak bak node phon nyang cocok ngon jalan. Na cit padum-padum boh fungsi konversi tipe nyang mungken haroh neuhindari kareuna JavaScript ka na masalah konversi tipe droe. Teuma jeuet na watee droeneuh neuk neuubah string jeut keu angka demi neupareksa ngon padum-padum boh angka laen. Fungsi nyang geuatoe jeuneh sapeue-sapeue nakeuh boolean, angka, string, ngon node. Nyoe keuh tipe data XPath nyang peunteng. Dan lagee nyang ka neukira, sebagian rayeuk fungsi-fungsi nyoe jeut neupakek bak datatype nyang kon node DOM. Miseu jih, substring-after jicok string lagee nyang ka ta cok, tapi jeut keu string dari atribut href. Jeut cit keu saboh string mantong:

const tesSubstringSetelah = dokumen.kueriXJalur ("substring-lheuh ('halo donya',' ')");

Jeulaih, contoh nyoe akan geubri keu geutanyoe array hasee seubagoe ["donya"]. Keu peuleumah nyoe lam tindakan, lon ka lon peugot saboh halaman demo pakek fungsi lawan hal-hal nyang kon node DOM: Neukalön bak Pen kueriXPath [geucabang] lé Bryan Rasmussen. Droeneuh haroih neuperhatikan aspek nyang mengejutkan dari fungsi translate, nakeuh meunyo droeneuh na karakter lam argumen keudua (yaitu, daftar karakter nyang neuk neuterjemahkan) dan hana karakter nyang cocok untuk neuterjemahkan, karakter nyan jeut dipeugadeh dari output. Meunan keuh, nyoe:

translate('Halo, Nan Lon Inigo Montoya, droeneuh neupoh ayah lon, neupeusiap keu mate',',','*')

...hasé lam string, jitamong cit spasi: [" * * ** "]

Nyoe meumakna bahwa huruf “a” teungoh jiterjeumah keu tanda bintang (*), tapi tiep-tiep huruf laen nyang hana terjemahan geubri string target ka ji peugadeh sepenuh jih. Ruang puteh nyan mantong nyang ka tanyoe tinggai .antara huruf “a” nyang ka geuterjeumah. Lheuh nyan lom, pertanyaan nyoe:

translate('Halo, Nan Lon Inigo Montoya, droeneuh neupoh ayah lon, neupeusiap keu mate','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,'.

...hana masalah dan output hasil nyang lagee nyoe:

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

Mungken droeneuh neuteupeu bahwa hana cara mudah lam JavaScript keu neupeubuet persis lagee nyang jipeubuet le fungsi XPath translate, meskipun keu le kasus penggunaan, replaceAll ngon ekspresi biasa jeuet neutangani. Droeneuh jeuet neungui cara nyang saban nyang ka lon peutunyok, tapi nyan suboptimal meunyo mandum nyang droeneuh galak nakeuh neuterjeumah string. Demo berikut nyoe membungkus fungsi terjemahan XPath untuk geubri versi JavaScript: Neukalön fungsi terjemahan Pen [digarpu] lé Bryan Rasmussen. Dipat mungken droeneuh neupakek sapeue-sapeue lagee nyoe? Peutimang enkripsi Caesar Cipher deungen offset lhee tumpat (miseu jih, enkripsi ateuh gareh dari 48 SM):

terjemahkan("Kaisar teungoh geurencana geujak lintas Rubikon!", "ABCDEFGHIJKLMNOPQRSTUVXYZABDEFGHYKLMNOPQRSTUVXYZ", 1999. "XYZABCDEFGHIJKLMNOPQRSTUVWxyzabcdefghijklmnopqrstuvw")

Teks input “Kaisar teungoh geurencana geujak lintas Rubicon!” hasil jih lam “Zxbpxo fp mixkkfkd ql zolpp qeb Oryfzlk!” Keu geubri contoh bagah laen keumungkenan nyang beda, lon peugot saboh fungsi metal nyang geucok input string dan geupake fungsi translate keu geubri pulang teks, jitamong mandum karakter nyang geucok umlauts. Neukalön fungsi logam Pen [geugarpu] lé Bryan Rasmussen.

logam konstan = (str) => { kembali terjemahkan(str, "AOUaou","ÄÖÜäöü"); }

Dan, meunyo geubri teks “Aturan Motley Crue, batee ateuh ureung agam!”, geugisa “Aturan Motley Crue, batee ateuh ureung agam!” Jeulah, sidroe ureng mungken na macam-macam penggunaan parodi dari fungsi nyo. Meunyo nyan droeneuh, maka artikel TVTropes nyoe seharusjih geubri inspirasi nyang le keu droeneuh. Meungui CSS Deungon XPath . Ingat alasan utama kamoe untuk pakek CSS selectors bersama-sama ngon XPath: CSS cukop that meuphom peu saboh glah, sedangkan nyang paleng get nyang jeut droeneuh peugot ngon XPath nakeuh perbandingan string dari atribut glah. Nyan akan berhasil lam sebagian rayeuk kasus. Teuma meunyo droeneuh pernah neuteumeung lam situasi dipat, kheun, na ureung nyang peugot glah nyang nan jih .primaryLinks dan .primaryLinks2 dan droeneuh neupakek XPath untuk neuteumeung glah .primaryLinks, maka droeneuh mungken akan neuteumeung masalah. Seulama hana nyang bangai lagee nyan, mungken droeneuh akan neupakek XPath. Tapi lon seudeh that lon laporkan bahwa lon ka lon keureuja bak teumpat-teumpat nyang ureung peugot jenis-jenis hal-hal bangai nyan. Nyoe na demo laen nyang pakek CSS ngon XPath beusaban. Nyoe menunjukkan peu nyang terjadi watee tanyoe ta pakek kode untuk ta jalankan XPath bak node konteks yang kon node dokumen. Neu kalon css Pen ngon xpath meusapat [geucabang] le Bryan Rasmussen. Kueri CSS nakeuh .artikel terkait a, nyang jicok dua elemen a lam saboh div nyang geubri glah .artikel terkait. Lheueh nyan na lhee boh query “hana get”, yaitu query nyang hana jipeubuet peue nyang tanyoe keuneuk jipeubuet watee jijak ngon elemen-elemen nyoe seubagoe node konteks. Lon jeut lon peugah pakon awak nyan berperilaku beda dari yang droneuh harapkan. Lhee boh pertanyaan brok nyang dimaksud nakeuh:

//text(): Geubri pulang mandum teks lam dokumen. //a/text(): Geubri pulang mandum teks lam link lam dokumen. ./a/teks (): Hana geubri hasé.

Alasan keu hasé nyoe nakeuh seudangkan konteks droëneuh nakeuh elemen nyang geubri pulang nibak kueri CSS, // meulawan ngon mandum dokumen. Nyoe keuh kekuatan XPath; CSS han jeuet jijak dari saboh node sampoe u sidroe nek tu dan lheuh nyan u syedara nek tu nyan, dan jijak u miyueb u keturunan syedara nyan. Tapi XPath jeut. Seumentara nyan, ./ geutanyong aneuk-aneuk node jinoe, dipat titik (.) mewakili node jinoe, dan tanda miring ukeu (/) mewakili jak bak padum-padum boh node aneuk — peue keuh nyan atribut, elemen, atawa teks nyang ditentukan le bagian selanjut jih dari jalan. Teuma hana aneuk saboh elemen nyang geupiléh lé query CSS, meunan cit query nyan pih hana geubri pulang sapeue. Na lhee boh query nyang jroh lam demo nyang akhé nyan:

.//teks (), ./teks (), normalisasi-ruang (. / teks ()).

Kueri normalize-space nyan jipeutunyok penggunaan fungsi XPath, tapi cit jipeubeutoi masalah nyang jitamong lam kueri laen. HTML nyan geustruktur lagee nyoe:

2018/04/pengujian-fitur-selenium-webdriver/"> Meuotomatisasi Pengujian Fitur Droeneuh Deungon WebDriver Selenium .

Query nyan geubri pulang feed bareh bak awai ngon akhe node teks, .dan normalisasi-ruang geupeugadeh nyoe. Meunyo tangui fungsi XPath peu mantong nyang geubri pulang sapeue-sapeue seulaen boolean ngon input XPath berlaku keu fungsi laen. Demo di miyup nyoe nakeuh padum-padum boh contoh: Neukalön contoh fungsi xpath Pen [geugarpu] lé Bryan Rasmussen. Contoh phon jipeuleumah saboh masalah nyang haroih gata jaga. Khusus jih, kode berikut:

dokumen.kueriXJalur ("substring-lheuh (//a/@ href, 'https://')");

...geubri saboh string:

"Peu-uji-fitur-selenium-webdriver/"

Nyan ka masuk akal, kon? Fungsi-fungsi nyo hana meugisa array teutapi string tunggal atau angka tunggal. Meujalankan fungsi nyan dipat mantong deungon le hasee hanya geubri pulang hasee phon. Hasé keudua geupeuleumah peuë nyang that-that tanyoe keuneuk:

dokumen.pemilihCSspertanyaan ("a").pertanyaanXJalur ("substring-lheuh (./@href, 'https://')");

Nyang geubri pulang array dua string:

["Hase-tes-otomatis-meuningkatkan-aksesibilitas/"]

Fungsi XPath jeut ta sarang lagee fungsi lam JavaScript. Jadi, meunyo tanyoe ta teupeu struktur URL Majalah Smashing, tanyoe jeut ta peugot lagee nyoe (ta pakek literal template nyan disarankan): `terjemahkan( substring ( substring-lheuh (./@href, 'www.majalah peuhanco.com/') ,9), '/','')`

Nyoe ka jeuet keu agak kompleks that sampoe peureulee komentar nyang geugamba peu nyang jipeubuet: cok mandum URL dari atribut href lheuh www.smashingmagazine.com/, peugadeh sikureung boh karakter phon, lheuh nyan neuterjeumah karakter slash ukeu (/) keu hana sapeue sampoe jeuet neupeuleupah slash keu. Array nyang jiteumee:

["pengujian-fitur-selenium-webdriver","hase-ujian-otomatis-meuningkatkan-aksesibilitas"]

Leubeh le Kasus Peuguna XPath . XPath jeut that meucahya lam tes. Alasan jih hana payah ta kalon, kareuna XPath jeut ta pakek untuk tacok tiep-tiep elemen lam DOM, dari posisi peu mantong lam DOM, sedangkan CSS hana jeut. Droeneuh hana jeuet neuhitong bak glah CSS teutap konsisten lam le sistem build modern, tapi ngon XPath, kamoe jeuet neupeugot cocokan nyang leubeh teuga teuntang peue asoe teks saboh elemen, hana peureulee struktur DOM nyang meu ubah. Na penelitian keu teknik-teknik nyang memungkenkan droeneuh neupeugot tes XPath nyang tahan. Hana nyang leubeh brok nibak tes-tes nyang meu-ulang-ulang dan gagal hanya kareuna CSS selector hana le meubut kareuna sapeue-sapeue ka geugantoe nan atawa geubôh. XPath pih that hayeu bak ekstraksi locator nyang le. Na leubeh nibak saboh cara untuk tapeuguna query XPath untuk tapeusapat saboh elemen. Meunan cit ngon CSS. Teuma kueri XPath jeuet geubor lam hai-hai deungon cara nyang leubeh geutargetkan nyang geubatasi peu nyang geubri pulang, memungkenkan droeneuh neuteumeung keucocokan tertentu di pat mungken na padum-padum boh kemungkenan keucocokan. Miseu jih, geutanyoe jeuet tangui XPath keu tapeugisa elemen h2 tertentu nyang na lam div nyang langsong meuikot div syedara nyang, bak giliran jih, na elemen gamba aneuk ngon atribut data-testID="leader" di ateuh jih:

bek keunong headline nyoe

Bek cit keunong headline nyoe

Ulee keu gamba peumimpén

Nyoe keuh pertanyaan jih: dokumen. kueriXJalur (` //peubagi[ syedara-syedara berikut::div[1] /img[@ID-ujian-data='peumimpén'] ] /j2/ teks () `);

Mari ta drop lam demo untuk ta kalon kiban mandum nyan meusapat: Neukalön Pertanyaan H2 Kompleks Pulpen [geugarpu] lé Bryan Rasmussen. Jadi, jeut. Na le that kemungkenan jalan keu elemen peu mantong lam tes nyang geupake XPath. XSLT 1.0 Peu-ulang Lon ka lon peugah awai bahwa tim Chrome na rencana untuk peugadeh dukungan XSLT 1.0 dari browser. Nyan peunteng kareuna XSLT 1.0 geupakek pemrograman nyang berfokus bak XML keu transformasi dokumen nyang, bak giliran jih, meugantung bak XPath 1.0, nyang nakeuh nyang diteumee bak sebagian rayeuk browser. Meunyo lagee nyan, geutanyoe akan gadoh saboh komponen kunci XPath. Teuma meunyo ta ingat bahwa XPath nyan beutoi-beutoi hebat keu tes tuleh, lon rasa hana mungken XPath secara keseluruhan akan gadeh lam watee hana trep le. That said, lon kaleuh lon perhatikan bahwa ureung tertarik bak saboh fitur watee jicok. Dan nyan teunte beutoi lam kasus XSLT 1.0 nyang ka ji peu-ulang. Na mandum diskusi nyang teungoh teudjadi di Hacker News nyang peunoh ngon argumen nyang meulawan ngon penolakan nyan. Postingan nyan keudroe nakeuh saboh contoh nyang that hayeu bak peugot framework blogging ngon XSLT. Gatajeuet neubaca diskusi keudroe, tapi nyan meutamong lam pakriban JavaScript mungken dipakek seubagoe shim keu XLST untuk meutangani kasus-kasus lagee nyan. Lon pih ka lon kalon saran-saran bahwa browser beu geupake SaxonJS, nyang jeut keu port keu meusen Saxon XSLT, XQUERY, ngon XPath JavaScript. Nyan keuh saboh ide nyang menarik, terutama kareuna Saxon-JS ji implementasikan versi jinoe dari spesifikasi nyoe, sedangkan hana browser nyang ji implementasikan versi XPath atawa XSLT peu mantong di lua 1.0, dan hana nyang ji implementasikan XQuery. Lon jok jaroe ngon Norm Tovey-Walsh di Saxonica, perusahaan di likot SaxonJS dan versi laen dari meusen Saxon. Gobnyan geupeugah: "Meunyo na vendor browser nyang tertarik untuk geucok SaxonJS seubagoe titik awai untuk geuintegrasikan teknologi XML modern lam browser, kamoe akan senang untuk meudiskusikan ngon awak nyan." — Norm Tovey-Walsh

Teuma na cit geutamah: "Lon akan that hireun meunyoe na ureung nyang meukira bahwa geucok SaxonJS lam bentuk saat nyoe ngon geupeutron lam browser build hana meu ubah akan jeut keu pendekatan ideal. Vendor browser, bak sifeut fakta bahwa awak nyan membangun browser, jeut geutoe integrasi bak tingkat nyang jioh leubeh dalam daripada tanyoe jeut 'dari luwa Tovesh'--."

Patot that ta teupeu bahwa komentar Tovey-Walsh nyan teuka kira-kira si minggu seugolom pengumuman depresi XSLT. Keusimpulan . Lon jeut lon jak dan lon jak. Teuma lon harap nyoe ka geupeuleumah kekuatan XPath dan geubri le that contoh nyang geupeuleumah cara pakek jih keu meucapai hai-hai nyang rayeuk. Nyoe contoh sempurna dari teknologi tuha lam tumpukan browser nyang mantong na le utilitas saat nyoe, bah pih droeneuh hana tom neuteupeu na atawa hana tom neupertimbangkan untuk neucapai. Bacaan Selanjutnya

“Peuningkatan Ketahanan Tes Web Otomatis Deungon Bahasa Alam” (Perpustakaan Digital ACM) le Maroun Ayli, Youssef Bakouny, Nader Jalloul, dan Rima KilanyTulesan nyoe le that geubri contoh XPath keu geutuleh tes ketahanan. XPath (MDN)Nyoe nakeuh teumpat nyang that jroh keu mulai meunyo droeneuh neumeuheut keu penjelasan teknis nyang mendetailkan cara XPath berfungsi. XPath Tutorial (ZVON)Lon ka lon teume tutorial nyoe paleng meubantu lam pembelajaran lon keudroe, berkat le that contoh dan penjelasan nyang jeulaih. XPatherAlat interaktif nyoe jeut neu keurija langsong ngon kode.

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