އަހަރެން ފްރަންޓް އެންޑް ޑިވެލޮޕްމަންޓްގައި ގިނަ ދުވަސްތަކެއް ވަންދެން އުޅުނު އިރު، ޓްރެންޑެއް ފެނިގެން ދިޔައީ: ޒުވާން ޑިވެލޮޕަރުން ޕްރޮގްރާމިންގގެ އާ ޕެރެޑައިމްއަކާއެކު މަސައްކަތް ކުރަނީ، އެކަމުގެ ތާރީޚީ ކޮންޓެކްސްޓް ނުވިސްނިއެވެ. ކަމެއް ނޭނގުމަކީ، ހަމަގައިމުވެސް، ފުރިހަމައަށް ވިސްނޭ ކަމެކެވެ. ވެބަކީ ތަފާތު ހުނަރާއި ޚާއްޞަ ކަންތައްތަކެއް ހުރި ވަރަށް ބޮޑު ތަނެއް ކަމަށާއި، އަޅުގަނޑުމެންނަށް ނޭނގޭ ކަންތައްތައް އަބަދުވެސް ނޭނގޭ ކަމަށެވެ. މިދާއިރާއިން އުނގެނުމަކީ އެއްފަހަރު ދިމާވެ ނިމިގެންދާ ކަމެއްގެ ބަދަލުގައި ކުރިއަށްދާ ދަތުރެކެވެ. ކޭސް އިން ޕޮއިންޓް: އަޅުގަނޑުގެ ޓީމުގެ މީހަކު ސުވާލުކުރީ ޔޫއައިގައި ހުންނަ ވަކި ޓެބަކާ ދުރަށް ޔޫޒަރުން ދަތުރުކުރާތޯ އެނގޭނެތޯއެވެ. އަހަރެން ޖާވާސްކްރިޕްޓްގެ ކުރިން އަންލޯޑް އިވެންޓަށް އިޝާރާތް ކުރިން. އެކަމަކު މީގެ ކުރިން މިކަމާ ކުރިމަތިލާފައިވާ މީހުންނަށް މިއީ ކުރެވޭނެ ކަމެއްކަން އެނގޭނީ އެހެން ސައިޓްތަކުގައި ސޭވް ނުކުރެވި ހުރި ޑޭޓާއާ ބެހޭ އެލާޓްތަކެއް ލިބިފައިވާތީ އެވެ. އަދި ރަނގަޅު މިންވަރަކަށް އަހަރެންގެ އެކުވެރިޔާއަށް ޕޭޖްހައިޑް އަދި ވިޒިބިލިޓީޗޭންޖް އިވެންޓްތައް ފާހަގަކޮށްލީމެވެ. އެކަން އަހަންނަށް އެނގުނީ ކިހިނެއް ހެއްޔެވެ؟ އެއީ އެހެން ޕްރޮޖެކްޓެއްގައި އުފެދުނު ކަމަކަށް ވާތީ، ފުރަތަމަ ޖާވާސްކްރިޕްޓް ދަސްކުރިއިރު އެކަމާ ބެހޭ ގޮތުން ދިރާސާ ކުރި ސަބަބުން ނޫނެވެ. ހަގީގަތަކީ ޒަމާނީ ފްރަންޓް އެންޑް ފްރޭމްވޯކްތައް ކޮޅަށް ހުންނަނީ އޭގެ ކުރިން އުފެދުނު ޓެކްނޮލޮޖީގެ ޖަޔަންޓްސްގެ ކޮނޑުގައި ކަމެވެ. އެމީހުން ޑިވެލޮޕްމަންޓް ޕްރެކްޓިސްތައް އެބްސްޓްރެކްޓް ކުރަނީ، ގިނަ ފަހަރަށް ރަނގަޅު ޑިވެލޮޕަރ ތަޖުރިބާއަކަށް ކަމަށްވާތީ، ސަގާފީ ގޮތުން ކޮންމެ މީހަކަށްވެސް އެނގެން ޖެހޭ މުހިންމު ފްރަންޓް އެންޑް ކޮންސެޕްޓްތަކެއްކަން އެނގުމުގެ ނުވަތަ އަތްލުމުގެ ބޭނުން ކުޑަކޮށްދޭ، ނުވަތަ ނައްތާލައެވެ. ސީއެސްއެސް އޮބްޖެކްޓް މޮޑެލް (ސީއެސްއެސްއޯއެމް) އަށް ބަލާށެވެ. ސީއެސްއެސް އަދި ޖާވާސްކްރިޕްޓްގައި މަސައްކަތްކުރާ ކޮންމެ މީހަކަށްވެސް ސީއެސްއެސްއޯއެމްގެ އަތްމަތީގެ ތަޖުރިބާތަކެއް ލިބިފައިވާ ކަމަށް އުންމީދު ކުރެވިދާނެ ނަމަވެސް އެއީ އަބަދުވެސް ވާނެ ކަމެއް ނޫނެވެ. އަޅުގަނޑު މަސައްކަތް ކުރި އީ-ކޮމާސް ސައިޓަކަށް ރިއެކްޓް ޕްރޮޖެކްޓެއް އޮތްއިރު، މިހާރު ހޮވާފައިވާ ޕޭމަންޓް ޕްރޮވައިޑަރަށް ސްޓައިލްޝީޓެއް ލޯޑް ކުރަން ޖެހުނެވެ. މައްސަލައަކީ ސްޓައިލްޝީޓް ކޮންމެ ޕޭޖެއްގައި ލޯޑް ކުރަމުން ދިޔައިރު އެއީ ހަމައެކަނި ވަކި ޕޭޖެއްގައި ހަގީގަތުގައި ބޭނުންވާ އެއްޗެއް ކަމެވެ. މިކަން ވާން ހަވާލުކޮށްފައިވާ ޑިވެލޮޕަރު ދުވަހަކުވެސް ސްޓައިލްޝީޓެއް ޑައިނަމިކްކޮށް ލޯޑްކޮށްފައެއް ނުވެއެވެ. އަނެއްކާވެސް މިއީ މުޅިން ވިސްނޭ ކަމެއް، ރިއެކްޓް އިން ތިބާ ފޯރާފައި ހުރެދާނެ ސަގާފީ އުސޫލު ދުރަށް އެބްސްޓްރެކްޓް ކުރާއިރު. ސީއެސްއެސްއޯއެމް އަކީ ކޮންމެ ދުވަހެއްގެ މަސައްކަތުގައި ބޭނުންވާ އެއްޗެއް ނޫންކަން ޔަގީނެވެ. އެކަމަކު އެއްފަހަރާ ދިމާވިޔަސް ކޮންމެވެސް ހިސާބަކުން އެއާ މުއާމަލާތް ކުރަން ޖެހުމަކީ އެކަށީގެންވާ ކަމެކެވެ. މި ތަޖުރިބާތަކުގެ ސަބަބުން އަޅުގަނޑަށް މި ލިޔުން ލިޔަން އިންސްޕަޔަރ ވެގެން ދިޔައެވެ. ވަލުތެރޭގައި މިހާރު ހުރި ގިނަ ވެބް ފީޗާތަކާއި ޓެކްނޮލޮޖީތަކެއް ހުރިއިރު، ދުވަހުން ދުވަހަށް ކުރާ މަސައްކަތުގައި ދުވަހަކުވެސް ސީދާ އަތް ނުލެވޭނެ އެވެ. ފަހަރެއްގައި ވެބް ޑިވެލޮޕްމަންޓަށް ފުދޭވަރަކަށް އަލަށް ވަދެ، އެކަންކަން ނޭނގޭތީ، ވަކި އޮނިގަނޑެއްގެ އެބްސްޓްރެކްޝަންގައި ފީނައިގެން އުޅޭތީ، އެކަން ފުންކޮށް އެނގެން ނުޖެހޭ، ނުވަތަ އެއްގޮތަކަށްވެސް އެނގެން ނުޖެހިދާނެއެވެ. އަޅުގަނޑު މިދައްކަނީ ޚާއްޞަކޮށް އެކްސްއެމްއެލްއާ ބެހޭގޮތުން، އަޅުގަނޑުމެންގެ ތެރެއިން ގިނަ ބަޔަކަށް އެނގޭ ގޮތުގައި އެއީ އެޗްޓީއެމްއެލް އާއި މުޅިން ތަފާތު ނޫން ޤަދީމީ ބަހެއްކަން. އަޅުގަނޑު މިކަން މި ގެނެސްދެނީ ދާދިފަހުން ޑަބްލިޔުއެޗްޓީޑަބްލިއުޖީން ކުރެވުނު މަޝްވަރާތަކުން އެކްސްއެސްއެލްޓީ ޕްރޮގްރާމިންގ ގެ ނަމުން މަޝްހޫރު އެކްސްއެމްއެލް ސްޓޭކްގެ ބޮޑު ބައެއް ބްރައުޒާތަކުން ނައްތާލަން ޖެހޭ ކަމަށް ބުނާތީއެވެ. މިއީ ހަމަ އަހަރުތަކެއް ވަންދެން އަޅުގަނޑުމެންނަށް ލިބިފައިވާ ދުވަސްވީ، މިހާރު ހުރި ޓެކްނޮލޮޖީއެއް، އަޅުގަނޑުގެ ޓީމު އޮތް ސީއެސްއެސްއޯއެމް ހާލަތު ފަދަ އަމަލީ ކަމެއްގައި ބޭނުންކުރެވިދާނެ ޓެކްނޮލޮޖީއެކެވެ. މީގެ ކުރިން އެކްސްއެސްއެލްޓީ އާއި އެކު މަސައްކަތް ކޮށްފައިވޭތޯ؟ މި ދުވަސްވީ ޓެކްނޮލޮޖީއަށް ވަރަށް ބޮޑަށް ލެނގިލައިގެން، މިއަދު ހަގީގީ ދުނިޔޭގެ މައްސަލަތަކާ ކުރިމަތިލުމަށްޓަކައި އެކްސްއެމްއެލްގެ ކޮންޓެކްސްޓުން ބޭރުގައި އޭގެ ފީޗާސް ލީވަރ ކުރާތޯ ބަލާލަމާ ހިނގާށެވެ. އެކްސްޕެތު: ސެންޓްރަލް އެޕީއައި ސީދާ އެކްސްއެމްއެލް ޕާސްޕެކްޓިވް އިން ބޭރުގައި ފަހަރެއްގައި އެންމެ ބޭނުންތެރި އެންމެ މުހިންމު އެކްސްއެމްއެލް ޓެކްނޮލޮޖީއަކީ އެއް ރޫޓް އެލިމެންޓެއް އެކުލެވޭ މާކަޕް ޓްރީއެއްގައި ހުންނަ ކޮންމެ ނޯޑެއް ނުވަތަ އެޓްރިބިއުޓެއް ހޯދުމަށް ކުރެވޭ ކިއުއަރީ ލޭންގުއޭޖެއް ކަމަށްވާ އެކްސްޕޭތު އެވެ. އަހަރެންގެ އަމިއްލަ ލޯތްބެއް އެކްސްއެސްއެލްޓީއަށް އޮތް ނަމަވެސް އެކަން ވެސް ބަރޯސާވެފައިވަނީ އެކްސްޕެތު އަށް ކަމަށާއި، ރޭންކިންގެ މުހިންމުކަމުގައި ޒާތީ ލޯބި އެއްފަރާތް ކުރަން ޖެހޭ ކަމަށެވެ. އެކްސްއެސްއެލްޓީ ނައްތާލުމަށް ކުރާ ޙުއްޖަތުގައި އެކްސްޕޭތުގެ އެއްވެސް ވާހަކައެއް ނުދައްކާތީ އަޅުގަނޑު ހީކުރަނީ އަދިވެސް އެއީ ހުއްދަ ކަމެއް ކަމަށް. އެއީ ރަނގަޅު ކަމެއް ކަމުގައި ވާތީ، ޚާއްޞަކޮށް އާންމު އެކްސްއެމްއެލް ބޭނުންކުރުމުން ބޭރުގައި ބޭނުންކުރާނެ އެއްޗެއް ހޯދަން މަސައްކަތް ކުރާއިރު، މި ސޫޓުގެ ޓެކްނޮލޮޖީތަކުގެ މައިގަނޑު އަދި އެންމެ މުހިންމު އެޕީއައި އަކީ އެކްސްޕެތު އެވެ. އެއީ މުހިންމު ކަމެއް ކަމުގައި ވާތީ، ސީއެސްއެސް ސެލެކްޓަރސް ބޭނުންކޮށްގެން ތިބާގެ ޕޭޖުގައިވާ ގިނަ އުފެއްދުންތައް ހޯދިދާނެ ކަމުގައި ވިޔަސް، އެ ހުރިހާ އެއްޗެއް ނުފެންނާނެތީއެވެ. މީގެ އިތުރުން ޑީއޯއެމްގައި މިހާރު ހުރި މަޤާމަށް ބަލައިގެން އެލިމެންޓެއް ހޯދުމަށް ސީއެސްއެސް ސެލެކްޓަރސް ބޭނުން ނުކުރެވޭނެއެވެ. އެކްސްޕެތު އަށް ކުރެވޭނެއެވެ. މިހާރު، މި ކިޔަމުންދާ ތިޔަބޭފުޅުންގެ ތެރެއިން ބައެއް ބޭފުޅުންނަށް އެކްސްޕެތު އެނގިވަޑައިގަންނަވާނެ، އަދި ބައެއް ބޭފުޅުންނަށް ނު އެނގިވަޑައިގަންނަވާނެ. އެކްސްޕެތު އަކީ ޓެކްނޮލޮޖީގެ ކިތަންމެ ބޮޑު ދާއިރާއެއް، އަދި އަޅުގަނޑަކަށް ޙަޤީޤަތުގައި ހުރިހާ އަސާސީ ކަމެއް ދަސްކޮށްދީ، އަދި މިކަހަލަ އެންމެ ލިޔުމެއްގައިވެސް އެކަމާ ގުޅޭ ފިނި ކަންތައްތައް ދައްކާކަށް ނުކެރޭނެ. އަޅުގަނޑު އަސްލު އެ ލިޔުން ލިޔަން އުޅުނު ނަމަވެސް އެވްރެޖްކޮށް ސްމޭޝިންގ މެގަޒިންގެ ޕަބްލިކޭޝަން 5000 ބަހަށްވުރެ ގިނައިން ނުދެއެވެ. އަހަރެން ކުރިންވެސް ހުރީ އެއަށްވުރެ ގިނައިން2،000 ބަސް ލިޔެފައި އޮތްއިރު އަސާސީ ކަންތައްތަކުގެ މެދުތެރެއިންނެވެ. އެހެންވީމާ، އަޅުގަނޑު މިދަނީ އެކްސްޕެތު އިން ފިނި ކަންތައްތައް ކުރަން ފަށައި، މި އެއްޗެހި ޝައުގުވެރިވާ ކަމަށް ފެނިއްޖެނަމަ އަސާސީ ކަންކަމަށް ބޭނުންކުރެވޭނެ ބައެއް ލިންކްތައް ދޭނަމެވެ. އެކްސްޕެތު & ސީއެސްއެސް އެއްކޮށްލުން އެކްސްޕެތު އިން ސީއެސްއެސް ސެލެކްޓަރުންނަށް އެލިމެންޓްތަކާ ސުވާލު ކުރާއިރު ނުކުރެވޭ ވަރަށް ގިނަ ކަންތައްތަކެއް ކުރެވޭނެ އެވެ. އެކަމަކު ސީއެސްއެސް ސެލެކްޓަރުންނަށް އެކްސްޕޭތު އަށް ނުކުރެވޭ މަދު ކަންތައްތަކެއް ވެސް ކުރެވޭނެ، އެއީ ކްލާސް ނަމުން އެލިމެންޓްތައް ކިއުއަރީ ކުރުމެވެ.
ސީއެސްއެސް އެވެ އެކްސްޕެތު އެވެ .މައިކްލާސް /*[contains(@class, "މައިކްލާސް")]
މި މިސާލުގައި ސީއެސްއެސް އިން .myClass ކްލާސްނޭމް ހިމެނޭ އެލިމެންޓްތަކާ ސުވާލުކުރެއެވެ. މީގެ އިތުރުން އެކްސްޕޭތު މިސާލުގައި “myClass” ސްޓްރިންގް އިން އެޓްރިބިއުޓް ކްލާހެއް ހިމެނޭ އެލިމެންޓްތަކާ ސުވާލުކުރެއެވެ. އެހެން ގޮތަކަށް ބުނާނަމަ، ކޮންމެ އެޓްރިބިއުޓެއްގައި ވެސް myClass ހުންނަ އެލިމެންޓްތައް ހޮވާއިރު، .myClass ކްލާސްނޭމް ހުންނަ އެލިމެންޓްތައް ހިމެނޭ ގޮތަށް — އަދި ސްޓްރިންގްގައި “myClass” ހުންނަ އެލިމެންޓްތައް، .myClass2 ފަދަ އުފެއްދުންތައް ވެސް ހިމެނެއެވެ. އެކްސްޕެތު އެ މާނައިގައި ފުޅާވެފައި ވެއެވެ. އެހެންވީމާ، ނޫން. އަޅުގަނޑު މިދަންނަވަނީކީ ނޫން އަޅުގަނޑުމެން ސީއެސްއެސް ޓޮސް އައުޓްކޮށް އެކްސްޕެތު މެދުވެރިކޮށް ހުރިހާ އެލިމެންޓްތަކެއް ސެލެކްޓް ކުރަން ފަށަންވީ ކަމަކަށް. އެއީކީއެއް ނޫން. ޕޮއިންޓަކީ އެކްސްޕެތު އަށް ސީއެސްއެސް އަށް ނުކުރެވޭ އަދި އަދިވެސް ވަރަށް ބޭނުންތެރި ކަންތައްތައް ކުރެވޭނެ ކަމާއި، އެއީ ބްރައުޒާ ސްޓޭކްގައި ހުރި ދުވަސްވީ ޓެކްނޮލޮޖީއެއް ކަމަށާއި ފުރަތަމަ ނަޒަރުން ވެސް ފާހަގަ ކުރެވޭ ކަމެއް ކަމަށް ނުފެނިދާނެ ކަމަށެވެ. މި ދެ ޓެކްނޮލޮޖީ އެއްކޮށް ބޭނުންކުރަނީ ހަމައެކަނި އަޅުގަނޑުމެންނަށް ކުރެވޭތީ ނޫން، އެކަމަކު އެ ޕްރޮސެސްގައި އެކްސްޕެތު އާއި ބެހޭ އެއްޗެއް ދަސްވާނެތީ، އެއީ ތިބާގެ ސްޓޭކްގައި ހުރި އަނެއް ޓޫލްއަކަށް ހަދައިގެން — ތިބާއަށް ނޭނގިދާނެ އެއްޗެއް ހުރިހާ ދުވަހަކު ވެސް އެބަހުރި! މައްސަލައަކީ ޖާވާސްކްރިޕްޓްގެ document.evaluate މެތޯޑާއި ޖާވާސްކްރިޕްޓަށް ސީއެސްއެސް އެޕީއައިތަކާ އަޅުގަނޑުމެން ބޭނުންކުރާ އެކިއެކި ކިއުއަރީ ސެލެކްޓަރ މެތޯޑްތައް އެއްގޮތް ނުވުމެވެ. އަޅުގަނޑުމެންނަށް ފަށައިގަތުމަށްޓަކައި ކޮމްޕެޓިބަލް ކިއުއަރިން އެޕީއައިއެއް ހަދާފައި އޮތް ނަމަވެސް، ގަބޫލުކުރަންޖެހޭ ކަމަކީ، މިތަނުގައި އަޅުގަނޑުމެން މިކުރާ ކަންކަމުން ދުރުވުމަކަށް ވާތީ، އަޅުގަނޑު އެކަމަށް މާބޮޑު ވިސްނުމެއް ނުގެންގުޅެމެވެ. މިއީ ރީޔޫޒް ކުރެވޭ ކިއުއަރީ ކޮންސްޓްރަކްޓަރެއްގެ ފުދޭވަރަކަށް ސާދާ މަސައްކަތްކުރާ މިސާލެކެވެ. ބްރައިއަން ރަސްމުސަން ލިޔުއްވާފައިވާ ޕެން ކިއުރީއެކްސްޕޭތު [ފޯކްޑް] ބައްލަވާށެވެ. އަޅުގަނޑު ޑޮކިއުމެންޓް އޮބްޖެކްޓްގައި ދެ މެތޯޑެއް އިތުރުކޮށްފިން: queryCSSSelectors (އެއީ މުހިންމު ގޮތެއްގައި querySelectorAll) އަދި queryXPaths އެވެ. މި ދެ ގޮތްވެސް ރިޓަރން ކުރަނީ queryResults އޮބްޖެކްޓެއް:
{ queryType: ނޯޑްސް | ސްޓްރިންގް | ނަންބަރު | ބޫލިއަން، ނަތީޖާ: any[] // html އެލިމެންޓްސް، xml އެލިމެންޓްސް، ސްޓްރިންގްސް، ނަންބަރުތައް، ބޫލިއަންސް، queryCSSSelectors: (ކުއެރީ: ސްޓްރިންގް، އިސްލާހުކުރުން: ބޫލިއަން) => queryResults, queryXpaths: (ކުއެރީ: ސްޓްރިންގް، އިސްލާހުކުރުން: ބޫލިއަން) => queryResults }
queryCSSSelectors އަދި queryXpaths ފަންކްޝަންތަކުން ތިބާ ދޭ ކިއުއަރީ ނަތީޖާ އެރޭގައިވާ އެލިމެންޓްތަކުގެ މައްޗަށް ހިންގަނީ، ނަތީޖާ އެރޭއަކީ ޓައިޕް ނޯޑްސްގެ އެއްޗެއް ކަމުގައި ވާހާ ހިނދަކު، ހަމަގައިމުވެސް. އެހެން ނޫންނަމަ ހުސް އެރޭއަކާއި ނޯޑްތަކުގެ ވައްތަރެއް އެކުލެވޭ queryResult އެއް ރިޓަރން ކުރާނެއެވެ. އެމެންޑް ޕްރޮޕަޓީ ޓްރޫ އަށް ސެޓްކޮށްފިނަމަ، ފަންކްޝަންތަކުން އެމީހުންގެ އަމިއްލަ queryResults ބަދަލުވާނެއެވެ. އެއްވެސް ހާލަތެއްގައި މިއީ އުފެއްދުމުގެ މާހައުލެއްގައި ބޭނުންކޮށްގެން ނުވާނެއެވެ. އަޅުގަނޑު މިގޮތަށް މިކުރަނީ ހަމައެކަނި ދެ ކިއުއަރީ އެޕީއައި އެއްކޮށް ބޭނުންކުރުމުން ކުރާ އެކިއެކި އަސަރުތައް ދައްކާލުމަށެވެ. މިސާލު ސުވާލުތައް އަޅުގަނޑު ދައްކާލަން ބޭނުންވަނީ، އެމީހުންނަށް ކުރެވޭނެ ބައެއް ވަރުގަދަ ކަންތައްތަކާއި، އެހެން ގޮތްތަކުގެ ބަދަލުގައި ބޭނުންކުރެވޭނެ ގޮތްތައް ދައްކުވައިދޭ ތަފާތު އެކްސްޕޭތު ކިއުއަރީތަކުގެ މަދު މިސާލުތަކެކެވެ. ފުރަތަމަ މިސާލަކީ //li/text() އެވެ. މިއީ ހުރިހާ li އެލިމެންޓްތަކެއް ކިއުއަރީކޮށް އެމީހުންގެ ޓެކްސްޓް ނޯޑްސް ރިޓަރން ކުރާ ކަމެކެވެ. އެހެންކަމުން، އަޅުގަނޑުމެން ތިރީގައިވާ އެޗްޓީއެމްއެލް އަށް ސުވާލު ކުރާނަމަ:
- އެވެ
- އެއް އެވެ
- ދެ އެވެ
- ތިން އެވެ
...މިއީ އަނބުރާ ލިބޭ އެއްޗެކެވެ:
{"queryType":"xpathEvaluate","results":["އެއް","ދެ","ތިން"],"resultType":"string"}
އެހެން ގޮތަކަށް ބުނާނަމަ، އަޅުގަނޑުމެންނަށް ލިބެނީ ތިރީގައިވާ އެރޭ: ["އެއް","ދެ","ތިން"]. އާންމު ގޮތެއްގައި އެކަން ހޯދުމަށް li އެލިމެންޓްތަކަށް ކިއުއަރީކޮށް، އެ ކިއުއަރީގެ ނަތީޖާ އެރޭއަކަށް ބަދަލުކޮށް، އެރޭ މެޕްކޮށް، ކޮންމެ އެލިމެންޓެއްގެ ޓެކްސްޓް ނޯޑް ރިޓަރން ކުރާނެއެވެ. އެކަމަކު އަޅުގަނޑުމެންނަށް އެކަން މާ ޚުލާޞާކޮށް ކުރެވޭނީ އެކްސްޕޭތު އިން: document.queryXPaths("//li/text()").ނަތީޖާ.
ޓެކްސްޓް ނޯޑެއް ލިބޭނެ ގޮތަކީ ޓެކްސްޓް() ބޭނުންކުރުންކަން ފާހަގަކޮށްލެވެއެވެ، މިއީ ފަންކްޝަން ސޮއިއެއް ފަދަ އެއްޗެއް — އަދި އެއީ ވެސް މެއެވެ. އެއީ އެލިމެންޓެއްގެ ޓެކްސްޓް ނޯޑް ރިޓަރން ކުރާ އެއްޗެކެވެ. އަޅުގަނޑުމެންގެ މިސާލުގައި މާކަޕްގައި ތިން ލި އެލިމެންޓް ހުންނައިރު، ކޮންމެ އެއްޗެއްގައި ވެސް ޓެކްސްޓް ("އެއް"، "ދެ"، އަދި "ތިން") ހިމެނެއެވެ.
ޓެކްސްޓް() ކިއުއަރީއެއްގެ އިތުރު އެއް މިސާލަށް ބަލާލަމާ ހިނގާށެވެ. މިއީ އަޅުގަނޑުމެންގެ މާކަޕް ކަމަށް ގަބޫލުކުރާށެވެ:
href އެޓްރިބިއުޓް ވެލިއު ރިޓަރން ކުރާ ކިއުއަރީއެއް ލިޔެލަމާ ހިނގާށެވެ: document.queryXPaths("//a[text() = 'ސައިން އިން']/@href").ނަތީޖާ.
މިއީ މިހާރު ހުރި ޑޮކިއުމަންޓްގައި އެކްސްޕޭތު ކިއުއަރީއެއް، ހަމަ އެންމެ ފަހުގެ މިސާލު ފަދައިން، އެކަމަކު މިފަހަރު އަޅުގަނޑުމެން ރިޓަރން ކުރާނީ “ސައިން އިން” ލިޔެފައިވާ ލިންކެއް (އެލިމެންޓެއް) ގެ href އެޓްރިބިއުޓް އެވެ. އަސްލު އެނބުރި އައެވެނަތީޖާއަކީ ["/login.html"] އެވެ. އެކްސްޕޭތު ފަންކްޝަންސް އޯވަރވިއު އެކްސްޕޭތު ފަންކްޝަންތަކުގެ ތެރެއިން ގިނަ އަދަދެއްގެ ފަންކްޝަންތައް ހުރިއިރު، އެ ފަންކްޝަންތަކަށް އަހުލުވެރި ނުވާ ކަމަށް ބެލެވޭނެ އެވެ. އަޅުގަނޑަށް ފެންނަ ފެނުމުގައި ދަންނަވާންޖެހޭ ބައެއް ކަންތައްތައް އެބަހުރި، އޭގެ ތެރޭގައި ތިރީގައި މިވާ ކަންތައްތައް ހިމެނެއެވެ.
starts-withޓެކްޓެއް ވަކި އެހެން ޓެކްސްޓެއްގެ މިސާލަކުން ފެށޭނަމަ، href އެޓްރިބިއުޓެއް http: އިން ފެށޭނަމަ starts-with(@href, 'http:') އިން ޓްރޫ ރިޓަރން ކުރާނެއެވެ. containsޓެކްސްޓެއްގައި ވަކި އެހެން ޓެކްސްޓެއްގެ މިސާލެއް ހިމެނޭނަމަ، ޓެކްސްޓް ނޯޑެއްގައި އެއްވެސް ތަނެއްގައި “ސްމޭޝިންގ މެގަޒިން” މި ލަފުޒުތައް ހުރިނަމަ contains(text(), "ސްމޭޝިންގ މެގަޒިން") އިން ޓްރޫ ރިޓަރން ކުރާނެއެވެ. countރިޓަރން ކިއުއަރީއަކަށް ކިތައް މެޗް ހުރިތޯ ބެލުން. މިސާލަކަށް count(//*[starts-with(@href, 'http:']) އިން ކޮންޓެކްސްޓް ނޯޑްގައިވާ ކިތައް ލިންކުގައި http: އިން ފެށޭ ޓެކްސްޓް ހިމެނޭ href އެޓްރިބިއުޓެއް ހުންނަ އެލިމެންޓްތައް ހުރިކަމުގެ ކައުންޓް ރިޓަރން ކޮށްދެއެވެ. substringޖާވާސްކްރިޕްޓް ސަބްސްޓްރިންގް ފަދައިން މަސައްކަތް ކުރަނީ، ސްޓްރިންގް އަރގިއުމެންޓެއްގެ ގޮތުގައި ފާސްކުރުން ފިޔަވައި. މިސާލަކަށް substring("my text", 2, 4) އިން "y t" ރިޓަރން ކޮށްދެއެވެ. substring-beforeއަނެއް ސްޓްރިންގެއްގެ ކުރިން ސްޓްރިންގެއްގެ ބައި އަނބުރާ ގެނެސްދެއެވެ. މިސާލަކަށް substing-before("my text", " ") އިން "my" ރިޓަރން ކޮށްދެއެވެ. ހަމައެފަދައިން substring-before("hi","bye") އިން ހުސް ސްޓްރިންގ އެއް ރިޓަރން ކޮށްދެއެވެ. substring-afterއަނެއް ސްޓްރިންގަކަށްފަހު ސްޓްރިންގެއްގެ ބައި އަނބުރާ ގެނެސްދެއެވެ. މިސާލަކަށް substing-after("my text", " ") އިން "text" ރިޓަރން ކޮށްދެއެވެ. ހަމައެފަދައިން substring-after("hi","bye") އިން ހުސް ސްޓްރިންގް އެއް އަނބުރާ ގެނެސްދެއެވެ. normalize-space ލީޑިންގ އަދި ޓްރޭލިންގ ވައިޓްސްޕޭސް ސްޓްރިޕްކޮށް ވައިޓްސްޕޭސް އަކުރުތަކުގެ ސިކުނޑިތައް އެއް ސްޕޭސް އިން ބަދަލުކޮށްގެން ވައިޓްސްޕޭސް ނޯމަލައިޒްކޮށްފައިވާ އަރގިއުމެންޓް ސްޓްރިންގް އަނބުރާ ގެނެސްދެއެވެ. notރިޓަރންސް ބޫލިއަން ޓްރޫ އެއް އަރގިއުމެންޓް ދޮގުނަމަ، އެހެން ނޫންނަމަ ދޮގު. trueރިޓަރންސް ބޫލިއަން ޓްރޫ އެވެ. falseރިޓަރންސް ބޫލިއަން ފޯލްސް އެވެ. concatޖާވާސްކްރިޕްޓް concat އާއި އެއް އެއްޗެއް، ސްޓްރިންގ އެއްގައި މެތޯޑެއްގެ ގޮތުގައި ނުހިންގާ ފިޔަވައި. އޭގެ ބަދަލުގައި ކޮންކެޓެނޭޓް ކުރަން ބޭނުންވާ ހުރިހާ ސްޓްރިންގްސް އެއް ޖައްސާށެވެ. string-lengthމިއީ ޖާވާސްކްރިޕްޓް string-length އާއި އެއްގޮތް އެއްޗެއް ނޫން ނަމަވެސް، އޭގެ ބަދަލުގައި އަރގިއުމެންޓެއްގެ ގޮތުގައި ދީފައިވާ ސްޓްރިންގްގެ ދިގުމިން އަނބުރާ ގެނެސްދެއެވެ. translateމިއީ ސްޓްރިންގ އެއް ނަގައިގެން ދެވަނަ އަރގިއުމެންޓް ތިންވަނަ އަރގިއުމެންޓަށް ބަދަލުކުރާ އެއްޗެކެވެ. މިސާލަކަށް translate("abcdef", "abc", "XYZ") އިން XYZdef އައުޓްޕުޓް ކުރެއެވެ.
މި ވަކި އެކްސްޕޭތު ފަންކްޝަންތައް އެއްފަރާތްކޮށްލާއިރު، ޖާވާސްކްރިޕްޓް ފަންކްޝަންތަކާ އެއްގޮތަށް މަސައްކަތްކުރާ އެހެން ގިނަ ފަންކްޝަންތަކެއް — ނުވަތަ އަސާސީ ގޮތުން ކޮންމެ ޕްރޮގްރާމިން ލޭންގުއޭޖެއްގައި ވެސް މަސައްކަތްކުރާ ފަންކްޝަންތައް — ތިބާއަށް ވެސް ބޭނުންތެރި ކަމަށް ބެލެވޭނެ އެވެ. ތިރީގައިވާ ޑެމޯއިން މިއިން ކޮންމެ ފަންކްޝަނެއް ދައްކުވައިދެއެވެ. ޕެން އެކްސްޕެތު ނިއުމެރިކަލް ފަންކްޝަންސް [ފޯކްޑް] ބްރައިއަން ރަސްމުސަން ބައްލަވާށެވެ. ފާހަގަކޮށްލަންޖެހޭ ކަމަކީ، ގިނަ ސްޓްރިންގް މެނިޕިއުލޭޝަން ފަންކްޝަންތަކެކޭ އެއްފަދައިން، ގިނަ ނިއުމެރިކަލް ފަންކްޝަންތަކުން އެއް އިންޕުޓެއް ނަގައެވެ. މިއީ، ހަމަގައިމުވެސް، އެންމެ ފަހުގެ އެކްސްޕޭތު މިސާލުގައި ވާ ފަދައިން، އެއީ ކިއުއަރީއަށް ބޭނުންކުރަން ޖެހޭ އެއްޗެހިތަކަކަށް ވާތީއެވެ: //li[ފްލޯރ(ޓެކްސްޓް()) > 250]/@val
އެތަކެތި ބޭނުންކޮށްފިނަމަ، ގިނަ މިސާލުތަކުގައި ބޭނުންކުރާ ފަދައިން، ނިމުމަކަށް އަންނާނީ، މަގާއި އެއްގޮތްވާ ފުރަތަމަ ނޯޑްގައެވެ. އަދި ޖާވާސްކްރިޕްޓްގައި މިހާރުވެސް އަމިއްލަ ޓައިޕް ބަދަލުކުރުމުގެ މައްސަލަތައް ހުރުމުން ދުރުހެލިވާންޖެހޭ ބައެއް ޓައިޕް ކޮންވާޝަން ފަންކްޝަންތައް ވެސް އެބަހުއްޓެވެ. އެކަމަކު އެހެން ނަންބަރަކާ އެއްވަރަށް ޗެކް ކުރުމަށްޓަކައި ސްޓްރިންގ އެއް ނަންބަރަކަށް ބަދަލު ކުރަން ބޭނުންވާ ވަގުތުތަކެއް ވެސް ދިމާވެދާނެއެވެ. އެއްޗެއްގެ ވައްތަރު ސެޓްކުރާ ފަންކްޝަންތަކަކީ ބޫލިއަން، ނަންބަރު، ސްޓްރިންގް، އަދި ނޯޑް އެވެ. މިއީ މުހިންމު އެކްސްޕެތު ޑޭޓާޓައިޕްތަކެވެ. އަދި ތިޔަބޭފުޅުންނަށް ހީވާ ފަދައިން، މި ފަންކްޝަންތަކުގެ ތެރެއިން ގިނަ ފަންކްޝަންތައް ބޭނުންކުރެވޭނީ ޑީއޯއެމް ނޯޑްސް ނޫން ޑޭޓާޓައިޕްތަކުގައެވެ. މިސާލަކަށް ސަބްސްޓްރިންގް-އަފްޓަރ އިން އަޅުގަނޑުމެން ކުރިން ކަވަރު ކުރި ގޮތަށް ސްޓްރިންގ އެއް ނަގާ ނަމަވެސް އެއީ href އެޓްރިބިއުޓެއްގެ ސްޓްރިންގަކަށް ވެދާނެއެވެ. އަދި ހަމައެކަނި ސްޓްރިންގަކަށް ވެސް ވެދާނެއެވެ:
const testSubstringAfter = document.queryXPaths("ސަބްސްޓްރިންގް-އަފްޓަރ('ހެލޯ ވޯލްޑް'،' ')");
ސާފުކޮށް އެނގޭ ގޮތުގައި މި މިސާލުން އަޅުގަނޑުމެންނަށް ނަތީޖާ އެރޭ އަނބުރާ ލިބޭނީ ["ދުނިޔެ"] ގެ ގޮތުގައެވެ. މިކަން ޢަމަލީ ގޮތުން ދައްކާލުމަށްޓަކައި، އަޅުގަނޑު މިވަނީ ޑީއޯއެމް ނޯޑްސް ނޫން ކަންކަމާ ދެކޮޅަށް ފަންކްޝަންތައް ބޭނުންކޮށްގެން ޑެމޯ ޕޭޖެއް ހަދާފައެވެ: ބްރައިއަން ރަސްމުސަން ލިޔުއްވާފައިވާ ޕެން ކިއުރީއެކްސްޕޭތު [ފޯކްޑް] ބައްލަވާށެވެ. ޓްރާންސްލެޓް ފަންކްޝަންގެ ހައިރާންކުރުވަނިވި ކަމަކީ ދެވަނަ އަރގިއުމެންޓްގައި (އެބަހީ، ތަރުޖަމާކުރަން ބޭނުންވާ އަކުރުތަކުގެ ލިސްޓް) އަކުރެއް ހުރެ، ތަރުޖަމާކުރަން އެއްގޮތް އަކުރެއް ނެތްނަމަ، އެ އަކުރު އައުޓްޕުޓުން ނައްތާލެވޭނެއެވެ. މިގޮތުން މިއީ:
translate('ހަލޯ، އަހަރެންގެ ނަމަކީ އިނިގޯ މޮންޓޯޔާ، ކަލޭ އަހަރެންގެ ބައްޕަ މަރާލީ، މަރުވާން ތައްޔާރު'،'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','*')
...ސްޓްރިންގްގައިވާ ނަތީޖާތައް، ޖާގަތައް ހިމެނޭ ގޮތަށް: [" * * ** "]
މާނައަކީ “a” އަކުރު ތަރި (*) އަކަށް ތަރުޖަމާ ކުރެވެމުންދާއިރު، ޓާގެޓް ސްޓްރިންގް ދީފައިވާ ތަރުޖަމާއެއް ނެތް އެހެން ކޮންމެ އަކުރެއް މުޅިން ނައްތާލެވޭނެއެވެ. ވައިޓްސްޕޭސް އަކީ އަޅުގަނޑުމެންނަށް ބާކީ އޮތް ހުރިހާ އެއްޗެކެވެތަރުޖަމާކޮށްފައިވާ “ކ” އަކުރުތަކުގެ މެދުގައި. ދެން އަނެއްކާވެސް މި ސުވާލު:
translate('ހެލޯ، މައި ނޭމް އިޒް އިނިގޯ މޮންޓޯޔާ، ކަލޭ އަހަރެންގެ ބައްޕަ މަރާލީ، މަރުވާން ތައްޔާރު'،'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','******************************************************')")
...މައްސަލައެއް ނެތި މިގޮތަށް ނަތީޖާއެއް ނެރެއެވެ:
"***** ** **** ** ***** ******* *** ****** ** ****** ******* ** ***"
ގިނަ ޔޫސް ކޭސްތަކަށް ރެގިއުލާ އެކްސްޕްރެޝަންތަކާއެކު ރިޕްލޭސްއޯލް އަށް އެކަން ޙައްލުކުރެވޭ ނަމަވެސް، އެކްސްޕޭތު ޓްރާންސްލެޓް ފަންކްޝަން އިން ކުރާ ސީދާ ކަމެއް ކުރުމަށް ޖާވާސްކްރިޕްޓްގައި ފަސޭހަ ގޮތެއް ނެތް ކަމަށް ތިބާއަށް ހީވެދާނެއެވެ. އަޅުގަނޑު ދައްކާލި ގޮތް ބޭނުން ކުރެވިދާނެ، އެކަމަކު އެއީ ސަބްއޮޕްޓިމަލް ކަމެއް ކަމުގައި ވާނަމަ، ބޭނުންވަނީ ހަމައެކަނި ސްޓްރިންގްސް ތަރުޖަމާ ކުރުމެވެ. ތިރީގައިވާ ޑެމޯ އިން ޖާވާސްކްރިޕްޓް ވަރޝަނެއް ފޯރުކޮށްދިނުމަށްޓަކައި އެކްސްޕެތްގެ ޓްރާންސްލެޓް ފަންކްޝަން ރެޕްކޮށްފައިވެއެވެ. ބްރައިއަން ރަސްމުސަން ލިޔުއްވާފައިވާ ޕެން ޓްރާންސްލެޓް ފަންކްޝަން [ފޯކްޑް] ބައްލަވާށެވެ. މިކަހަލަ އެއްޗެއް ބޭނުން ކުރެވިދާނެ ކޮންތާކު ހެއްޔެވެ؟ ތިން ތަނެއްގެ އޮފްސެޓެއް އެކުލެވޭ ސީޒަރ ސައިފަރ އެންކްރިޕްޝަން އަށް ވިސްނާލަމާ (އެބަހީ، މީލާދީން 48 ވަނަ އަހަރުން ފެށިގެން ޓޮޕް އޮފް ދަ ލައިން އެންކްރިޕްޝަން):
translate("ސީޒަރ ރާވަނީ ރޫބިކޮން ހުރަސްކުރަން!"، "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"، "XYZABCDEFGHIJKLMNOPQRSTUVWxyzabcdefghijklmnopqrstuvw")
އިންޕުޓް ޓެކްސްޓް “ސީޒަރ ރާވަނީ ރޫބިކޮން ހުރަސްކުރަން!” ނަތީޖާއަކަށް ވެގެންދަނީ “Zxbpxo fp mixkkfkd ql zolpp qeb Oryfzlk!” ތަފާތު ފުރުޞަތުތަކުގެ އިތުރު އަވަސް މިސާލެއް ދިނުމަށްޓަކައި، އަޅުގަނޑު ހެދީ ސްޓްރިންގ އިންޕުޓެއް ނަގައި، ޓްރާންސްލެޓް ފަންކްޝަނެއް ބޭނުންކޮށްގެން ޓެކްސްޓް ރިޓަރން ކުރާ މެޓަލް ފަންކްޝަނެއް، އޭގެ ތެރޭގައި އުމްލައުޓްސް ނަގާ ހުރިހާ އަކުރުތައް ހިމެނެއެވެ. ބްރައިއަން ރަސްމުސަން ލިޔުއްވާފައިވާ ޕެން މެޓަލް ފަންކްޝަން [ފޯކްޑް] ބައްލަވާށެވެ.
ކޮންސްޓް މެޓަލް = (ސްޓްރ) => { return translate(str, "AOUaou","ÄÖÜäöü"); }
އަދި، “މޮޓްލީ ކްރޫ ރޫލްސް، ރޮކް އޮން ޑޫޑްސް!”، މި ލިޔުން ދީފިނަމަ، އެނބުރި އަންނަނީ “މޮޓްލީ ކްރޫ ރޫލްސް، ރޮކް އޮން ޑޫޑްސް!” ސާފުކޮށް އެނގޭ ގޮތުގައި މި ފަންކްޝަންގެ ހުރިހާ ވައްތަރެއްގެ ޕެރޯޑީ ބޭނުންތަކެއް ހުރެދާނެއެވެ. އެއީ ތިބާ ނަމަ، ޓީވީޓްރޯޕްސްގެ މި ލިޔުމުން ތިބާއަށް ގިނަ އިންސްޕިރޭޝަންތަކެއް ލިބެން ޖެހެ އެވެ. އެކްސްޕެތު އާއި އެކު ސީއެސްއެސް ބޭނުންކުރުން އެކްސްޕެތު އާއި އެކު ސީއެސްއެސް ސެލެކްޓަރސް ބޭނުންކުރުމުގެ މައިގަނޑު ސަބަބު ހަނދާން ކުރާށެވެ: ސީއެސްއެސް އަށް ކްލާހަކީ ކޮބައިކަން ކިތަންމެހާވެސް ބޮޑަށް ވިސްނޭއިރު، އެކްސްޕެތު އިން ކުރެވޭނެ އެންމެ ރަނގަޅު ކަމަކީ ކްލާސް އެޓްރިބިއުޓްގެ ސްޓްރިންގް ކޮމްޕެރިޝަންސް އެވެ. އެއީ ގިނަ ހާލަތްތަކުގައި މަސައްކަތް ކުރާނެ ކަމެއް. އެކަމަކު ދުވަހަކުވެސް ތިބާއަށް ދިމާވެއްޖެނަމަ، ބުނަމާ ހިނގާ، މީހަކު .primaryLinks އަދި .primaryLinks2 ގެ ނަމުގައި ކްލާސްތައް އުފައްދައި، .primaryLinks ކްލާސް ހޯދުމަށް އެކްސްޕެތު ބޭނުން ކުރަމުންދާނަމަ، މައްސަލަތަކެއް ދިމާވުން އެކަށީގެންވެއެވެ. އެކަހަލަ ސިއްރު ކަމެއް ނެތްހާ ހިނދަކު، އެކްސްޕޭތު ބޭނުން ކުރާނެ ކަމަށް ބެލެވެ އެވެ. އެކަމަކު އަޅުގަނޑު ދެރަވަނީ އެ ބާވަތުގެ ސިއްރު ކަންތައްތައް މީހުން ކުރާ ތަންތަނުގައި މަސައްކަތް ކޮށްފައިވާ ކަމަށް ރިޕޯޓް ކުރަން. މިއީ ސީއެސްއެސް އާއި އެކްސްޕެތު އެއްކޮށް ބޭނުންކޮށްގެން އުފައްދާފައިވާ އަނެއް ޑެމޯއެކެވެ. އެއީ ޑޮކިއުމެންޓްގެ ނޯޑެއް ނޫން ކޮންޓެކްސްޓް ނޯޑެއްގައި އެކްސްޕޭތު އެއް ހިންގުމަށް ކޯޑް ބޭނުން ކުރުމުން ވާގޮތް ދައްކުވައިދޭ އެއްޗެކެވެ. ބްރައިއަން ރަސްމުސަން ލިޔުއްވާފައިވާ ޕެން css އާއި xpath އެއްކޮށް [ފޯކްޑް] ބައްލަވާށެވެ. ސީއެސްއެސް ކިއުއަރީ އަކީ .relatedarticles a ކަމަށާއި، މިއީ .relatedarticles ކްލާހެއް ޙަވާލުކޮށްފައިވާ ޑިވް އެއްގައި ހުންނަ ދެ a އެލިމެންޓް ގެނެސްދޭ އެއްޗެކެވެ. އެއަށްފަހު ތިން “ނުބައި” ކިއުއަރީއެއް، އެއީ ކޮންޓެކްސްޓް ނޯޑްގެ ގޮތުގައި މި އުފެއްދުންތައް ހިފައިގެން ހިންގާއިރު އަޅުގަނޑުމެން ބޭނުންވާ ގޮތަށް ނުކުރާ ކިއުއަރީތަކެވެ. އެމީހުން ތިޔަ ހީކުރާ ވަރަށް ވުރެ ތަފާތު ގޮތަކަށް ކަންތައް ކުރަމުންދާ ސަބަބު އަޅުގަނޑަށް ކިޔައިދެވިދާނެ. ސުވާލު އުފެދޭ ނުބައި ތިން ސުވާލަކީ:
//text(): ޑޮކިއުމެންޓްގައިވާ ހުރިހާ ޓެކްސްޓެއް ރިޓަރން ކޮށްދެއެވެ. //a/text(): ޑޮކިއުމެންޓްގައިވާ ލިންކްތަކުގެ އެތެރޭގައިވާ ހުރިހާ ޓެކްސްޓެއް ރިޓަރން ކޮށްދެއެވެ. ./a/text(): އެއްވެސް ނަތީޖާއެއް ނުލިބެއެވެ.
މި ނަތީޖާތައް ލިބޭ ސަބަބަކީ ތިބާގެ ކޮންޓެކްސްޓަކީ ސީއެސްއެސް ކިއުއަރީން ރިޓަރން ކުރާ އެލިމެންޓްތަކެއް ނަމަވެސް، // މުޅި ޑޮކިއުމަންޓާ ދެކޮޅަށް ދާތީއެވެ. މިއީ އެކްސްޕޭތުގެ ވަރުގަދަކަން؛ ސީއެސްއެސް އަށް ނޯޑަކުން މައްޗަށް ގޮސް ކާބަފައިންގެ އެއްބަނޑު އެއްބަފާ މީހަކަށް ގޮސް، އެ ކާބަފައިންގެ އެއްބަނޑު އެއްބަފާ މީހަކަށް ގޮސް، އެ އެއްބަނޑު އެއްބަފާ މީހެއްގެ ދަރިފަސްކޮޅަކަށް ތިރިއަށް ހިނގައިގަނެވޭކަށް ނެތެވެ. އެކަމަކު އެކްސްޕެތު އަށް ކުރެވޭނެ އެވެ. މީގެ އިތުރުން، ./ މިހާރު ހުރި ނޯޑްގެ ކުދިންނާ ސުވާލުކުރާއިރު، ޑޮޓް (.) އިން މިހާރު ހުރި ނޯޑް ތަމްސީލުކުރާއިރު، ފޯވާޑް ސްލޭޝް (/) އިން ދައްކުވައިދެނީ ކޮންމެވެސް ޗައިލްޑް ނޯޑަކަށް ދިއުން — އެއީ އެޓްރިބިއުޓެއްތޯ، އެލިމެންޓެއްތޯ، ނުވަތަ ޓެކްސްޓެއްތޯ ކަނޑައެޅެނީ މަގުގެ ދެން އޮންނަ ބައިންނެވެ. އެކަމަކު ސީއެސްއެސް ކިއުއަރީން ހޮވާފައިވާ އެލިމެންޓެއް އެއްވެސް ކުއްޖަކު ނެތް، މިހެންވެ އެ ކިއުއަރީން ވެސް އެއްވެސް އެއްޗެއް ނުލިބެއެވެ. އެ އެންމެ ފަހުގެ ޑެމޯގައި ރަނގަޅު ތިން ސުވާލެއް އެބަހުއްޓެވެ:
.//ޓެކްސްޓް()، ./ޓެކްސްޓް()، ނޯމަލައިޒް-ސްޕޭސް(./ޓެކްސްޓް()).
ނޯމަލައިޒް-ސްޕޭސް ކިއުއަރީ އިން އެކްސްޕޭތު ފަންކްޝަން ބޭނުންކުރުން ދައްކުވައިދޭ ނަމަވެސް އެހެން ކިއުއަރީތަކުގައި ހިމެނޭ މައްސަލައެއް ވެސް ހައްލުކުރެއެވެ. އެޗްޓީއެމްއެލް ސްޓްރަކްޗަރ ކުރެވިފައިވަނީ މިގޮތަށެވެ.
ސެލެނިއަމް ވެބްޑްރައިވަރ އިން ފީޗާ ޓެސްޓިންގ އޮޓޮމެޓިކް ކުރުން
ކިއުއަރީ އިން ޓެކްސްޓް ނޯޑްގެ ފެށުމާއި ނިމުމުގައި ލައިން ފީޑެއް އަނބުރާ ގެނެސްދެއެވެ،އަދި ނޯމަލައިޒް-ސްޕޭސް އިން މިކަން ނައްތާލައެވެ. އިންޕުޓެއް އެކުލެވޭ ބޫލިއަން ނޫން އެހެން އެއްޗެއް ރިޓަރން ކުރާ ކޮންމެ އެކްސްޕެތު ފަންކްޝަނެއް ބޭނުންކުރުމަކީ އެކްސްޕެތު އެހެން ފަންކްޝަންތަކަށް ވެސް އަމަލުކުރާ ކަމެކެވެ. ތިރީގައިވާ ޑެމޯއިން ގިނަ މިސާލުތަކެއް ފެނެއެވެ. ބްރައިއަން ރަސްމުސަން ލިޔުއްވާފައިވާ ޕެން xpath ފަންކްޝަންތަކުގެ މިސާލުތައް [ފޯކްޑް] ބައްލަވާށެވެ. ފުރަތަމަ މިސާލުން ފެންނަނީ ސަމާލުވާން ޖެހޭ މައްސަލައެކެވެ. ވަކިން ޚާއްޞަކޮށް، ތިރީގައިވާ ކޯޑް:
document.queryXPaths("ސަބްސްޓްރިންގ-އަފްޓަރ(//a/@href،'https://')");
...އެއް ސްޓްރިންގް އަނބުރާ ގެނެސްދެއެވެ:
"www.smashingmagazine.com/2018/04/ފީޗާ-ޓެސްޓިންގ-ސެލެނިއަމް-ވެބްޑްރައިވަރ/"
އެއީ ބުއްދިވެރި ކަމެއް ނޫންހެއްޔެވެ؟ މި ފަންކްޝަންތަކުން ރިޓަރން ކުރަނީ އެރޭތަކެއް ނޫން ކަމަށާއި އޭގެ ބަދަލުގައި އެއް ސްޓްރިންގް ނުވަތަ އެއް ނަންބަރު ރިޓަރން ކުރާ ކަމަށެވެ. އެތައް ނަތީޖާއަކާއެކު ކޮންމެ ތަނެއްގައި ވެސް ފަންކްޝަން ހިންގުމުން ލިބޭނީ ހަމައެކަނި ފުރަތަމަ ނަތީޖާއެވެ. ދެވަނަ ނަތީޖާއިން އެނގެނީ އަޅުގަނޑުމެން އަސްލު ބޭނުންވާ ކަންތައްތައް:
document.queryCSSSelectors("a").queryXPaths("ސަބްސްޓްރިންގ-އަފްޓަރ(./@href،'https://')");
މިއީ ދެ ސްޓްރިންގްގެ އެރޭއެއް ރިޓަރން ކުރާ އެއްޗެކެވެ:
["www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/","www.smashingmagazine.com/2022/11/އޮޓޮމެޓިކް-ޓެސްޓް-ރިޒަލްޓްސް-އިމްޕްރޫވް-އެކްސެސިބިލިޓީ/"]
އެކްސްޕެތު ފަންކްޝަންތައް ވެސް ޖާވާސްކްރިޕްޓްގައި ހުންނަ ފަންކްޝަންތައް ފަދައިން ނެސްޓް ކުރެވިދާނެ އެވެ. އެހެންކަމުން، އަޅުގަނޑުމެންނަށް ސްމޭޝިންގ މެގަޒިން ޔޫއާރްއެލް ސްޓްރަކްޗަރ އެނގޭނަމަ، އަޅުގަނޑުމެންނަށް ތިރީގައިވާ ކަންތައްތައް ކުރެވިދާނެ (ޓެމްޕްލޭޓް ލިޓަރަލްސް ބޭނުންކުރުން ރަނގަޅު): `ތަރުޖަމާކުރުން( ސަބްސްޓްރިންގް( ސަބްސްޓްރިންގް-އަފްޓަރ(./@href، ‘www.smashingmagazine.com/') ،9)، '/','')`
މިއީ ކުރާ ކަންތައްތައް ބަޔާންކުރާ ކޮމެންޓްތައް ބޭނުންވާ މިންވަރަށް ތަންކޮޅެއް މާ ކޮމްޕްލެކްސް ވަމުން އަންނަ ކަމެކެވެ: www.smashingmagazine.com/ އަށް ފަހު href އެޓްރިބިއުޓް އިން ޔޫއާރްއެލްގެ ހުރިހާ އެއްޗެއް ނަގައި، ފުރަތަމަ ނުވަ އަކުރު ނަގައި، ނިމޭ ފޯވާޑް ސްލޭޝް އިން ސަލާމަތްވުމަށް ކުރިއަށް ސްލޭޝް (/) އަކުރު އެއްވެސް އެއްޗަކަށް ތަރުޖަމާ ކުރުން. ނަތީޖާއެއްގެ ގޮތުން ލިބޭ އެރޭ:
["ފީޗާ-ޓެސްޓިންގ-ސެލެނިއަމް-ވެބްޑްރައިވަރ","އޮޓޮމެޓިކް-ޓެސްޓް-ރިޒަލްޓްސް-އިމްޕްރޫވް-އެކްސެސިބިލިޓީ"]
އިތުރު އެކްސްޕެތު ޔޫސް ކޭސްތައް އެކްސްޕެތު އަށް ޓެސްޓް ކުރުމުގައި ހަގީގަތުގައި ވެސް ވިދާލެވޭނެ އެވެ. ސަބަބު ދެނެގަންނަން އުނދަގޫ ނޫން ކަމަށާއި، އެކްސްޕެތު ބޭނުންކޮށްގެން ޑީއޯއެމްގައި ހުންނަ ކޮންމެ އެލިމެންޓެއް، ޑީއޯއެމްގެ ކޮންމެ މަޤާމަކުން ވެސް ހޯދިދާނެ ކަމަށާއި، ސީއެސްއެސް އަށް އެކަން ނުކުރެވޭނެ ކަމަށެވެ. ޒަމާނީ ގިނަ ބިލްޑް ސިސްޓަމްތަކުގައި ސީއެސްއެސް ކްލާސްތައް އެއްގޮތަކަށް ހުރުމަށް ގުނާކަށް ނުކެރޭނެ ނަމަވެސް އެކްސްޕެތު އާއެކު، ބަދަލުވަމުން އަންނަ ޑީއޯއެމް ސްޓްރަކްޗަރ އަށް ބެލުމެއްނެތި، އެލިމެންޓެއްގެ ޓެކްސްޓް ކޮންޓެންޓަކީ ކޮބައިތޯ އިތުރަށް ވަރުގަދަ މެޗްތައް ހަދައިދެއެވެ. ރެސިލިއަންޓް އެކްސްޕޭތު ޓެސްޓްތައް ހެދުމަށް ފުރުސަތު ލިބޭ އުކުޅުތަކާ ބެހޭ ގޮތުން ދިރާސާތަކެއް ކުރެވިފައިވެ އެވެ. ހަމައެކަނި އެއްޗެއްގެ ނަން ބަދަލުކޮށްފައި ނުވަތަ އުނިކޮށްފައި އޮތުމުން ސީއެސްއެސް ސެލެކްޓަރެއް ދެން މަސައްކަތް ނުކުރާތީ ޓެސްޓްތައް ފްލޭކް އައުޓްވެ ފޭލް ވުމަކީ މާ ގޯސް ކަމެއް ނޫނެވެ. އެކްސްޕެތު އަކީ ވެސް މަލްޓިޕަލް ލޮކޭޓަރ އެކްސްޓްރެކްޝަންގައި ހަގީގަތުގައި ވެސް މޮޅު އެއްޗެކެވެ. އެލިމެންޓެއް މެޗް ކުރުމަށް އެކްސްޕޭތު ކިއުއަރީސް ބޭނުން ކުރެވޭނެ އެއް ގޮތަށް ވުރެ ގިނަ ގޮތް ވެއެވެ. ސީއެސްއެސް އަށް ވެސް ހަމަ އެގޮތެވެ. އެކަމަކު އެކްސްޕެތު ކިއުއަރީސް އިން ކަންކަން ޑްރިލް ކުރެވޭނީ މާ ޓާގެޓް ކުރެވިފައިވާ ގޮތަކަށް ކަމަށާއި، އެއީ ރިޓަރން ލިބޭ އެއްޗެއް ލިމިޓްކޮށް، ވަކި މެޗެއް ހޯދުމުގެ ފުރުސަތު ލިބިދާނެ ކަމަށް ބެލެވޭ އެތައް މެޗެއް ހުރެދާނެ ކަމަށެވެ. މިސާލަކަށް، އެއްބަނޑު އެއްބަފާ ޑިވް އެއްގެ ފަހަތުން ވަގުތުން އަންނަ ޑިވް އެއްގެ ތެރޭގައި ހިމެނޭ ވަކި h2 އެލިމެންޓެއް ރިޓަރން ކުރުމަށް އެކްސްޕޭތު ބޭނުން ކުރެވިދާނެއެވެ.
މި ސުރުޚީ ނުލިބޭ
މި ސުރުޚީ ވެސް ނުލިބޭ
ލީޑަރ އިމޭޖްގެ ހެޑަރ
މިއީ ސުވާލު: ޑޮކިއުމެންޓް.ކުއެރީއެކްސްޕޭތްސް(` //ޑިވް[ ފޮލޯވަރުން-އެއްބަނޑު އެއްބަފާ::div[1] /img[@data-testID='ލީޑަރ'] ] /h2/ ޓެކްސްޓް() `);
އެ ހުރިހާ ކަމެއް އެއްކޮށް އަންނަނީ ކިހިނެއްތޯ ބަލަން ޑެމޯއެއް ގެނެސްލަމާ ހިނގާށެވެ: ބްރައިއަން ރަސްމުސަން ލިޔުއްވާފައިވާ ޕެން ކޮމްޕްލެކްސް އެޗް2 ކިއުއަރީ [ފޯކްޑް] ބައްލަވާށެވެ. އެހެންވީމާ، އާދެ. އެކްސްޕެތު ބޭނުންކޮށްގެން ކުރާ ޓެސްޓެއްގައި ކޮންމެ އެލިމެންޓަކަށް ވެސް ދާނެ މަގުތައް ވަރަށް ގިނަ އެވެ. އެކްސްއެސްއެލްޓީ 1.0 ޑިޕްރިކޭޝަން އަޅުގަނޑު ވަރަށް ކުރީކޮޅު ފާހަގަކުރިން ކްރޯމް ޓީމުން ރާވާފައިވަނީ އެކްސްއެސްއެލްޓީ 1.0 ސަޕޯޓް ބްރައުޒާއިން ނައްތާލުމަށެވެ. އެއީ މުހިންމު ކަމެއް ކަމުގައި ވާތީ، އެކްސްއެސްއެލްޓީ 1.0 ގައި ޑޮކިއުމަންޓް ޓްރާންސްފޯމަޝަން އަށް އެކްސްއެމްއެލް ފޯކަސްޑް ޕްރޮގްރާމިންގ ބޭނުން ކުރާތީ، އަނެއްކާވެސް ބަރޯސާވެފައިވަނީ ގިނަ ބްރައުޒާތަކުން ފެންނަ އެކްސްޕޭތު 1.0 އަށެވެ. އެކަން ދިމާވުމުން އެކްސްޕޭތުގެ މުހިއްމު ކޮމްޕޮނެންޓެއް އަޅުގަނޑުމެންނަށް ގެއްލިގެންދާނެއެވެ. އެކަމަކު ޓެސްޓް ލިޔުމަށް އެކްސްޕެތު އަކީ ހަގީގަތުގައި ވެސް މޮޅު އެއްޗެއް ކަމުގެ ހަގީގަތަށް ބަލާއިރު، މުޅި އެކްސްޕެތު މާ އަވަހަށް ނެތިގެން ދިއުމަކީ ގާތް ކަމެއް ކަމަށް އަހަންނަށް ފެނެ އެވެ. އެހެން ނަމަވެސް، އަޅުގަނޑަށް ފާހަގަ ކުރެވިފައި އޮތީ، ފީޗާއެއް ނަގާލުމުން، އެ ފީޗާއަކަށް މީހުން ޝައުގުވެރިވާކަން. އަދި އެއީ ހަމަ ޔަގީނުންވެސް އެކްސްއެސްއެލްޓީ 1.0 ޑިޕްރެކޭޓް ވެފައިވާ ހާލަތުގައި ވެސް ތެދެކެވެ. ހެކަރ ނިއުސްގައި މުޅި މަޝްވަރާއެއް ހިނގަމުންދަނީ އެ ޑިޕްރެކޭޝަންއާ ދެކޮޅަށް ޙުއްޖަތްތަކުން ފުރިފައެވެ. ޚުދު އެ ޕޯސްޓަކީ އެކްސްއެސްއެލްޓީ އާއި އެކު ބްލޮގިން ފްރޭމްވޯކެއް އުފެއްދުމުގެ މޮޅު މިސާލެކެވެ. ތިބާއަމިއްލައަށް މަޝްވަރާ ކިޔައިލެވޭނެ ނަމަވެސް އެއީ އެ ބާވަތުގެ މައްސަލަތައް ބެލެހެއްޓުމަށް އެކްސްއެލްއެސްޓީއަށް ޝިމްއެއްގެ ގޮތުގައި ޖާވާސްކްރިޕްޓް ބޭނުންކުރެވިދާނެ ގޮތުގެ މައްޗަށެވެ. އަދި ބްރައުޒާތަކުން ސެކްސަންޖޭއެސް ބޭނުންކުރަން ޖެހޭ ކަމަށް ވެސް އަޅުގަނޑަށް ފެނިފައި ވާއިރު، މިއީ ޖާވާސްކްރިޕްޓްގެ ސެކްސަން އެކްސްއެސްއެލްޓީ، އެކްސްކިއުރީ، އަދި އެކްސްޕޭތު އިންޖީނުތަކަށް ޕޯޓެއް ކަމަށް ވެސް ވިދާޅުވި އެވެ. އެއީ ޝައުގުވެރި ޚިޔާލެއް، ހާއްސަކޮށް ސެކްސަން-ޖޭއެސް އިން މި ސްޕެސިފިކޭޝަންތަކުގެ މިހާރުގެ ވަރޝަން ތަންފީޒު ކުރާއިރު، 1.0 އަށް ވުރެ މާ ބޮޑަށް އެކްސްޕޭތު ނުވަތަ އެކްސްއެސްއެލްޓީގެ އެއްވެސް ވަރޝަނެއް ތަންފީޒުކުރާ ބްރައުޒާއެއް ނެތް އިރު، އެކްސްކުއަރީ ތަންފީޒުކުރާ އެއްވެސް ބްރައުޒާއެއް ނެތެވެ. އަހަރެން ސެކްސަންޖޭއެސް އާއި ސެކްސަން އިންޖީނުގެ އެހެން ވަރޝަންތަކުގެ ފަހަތުގައި ހުންނަ ކުންފުނި ސެކްސޮނިކާގެ ނޯރމް ޓޯވީ-ވޯލްޝް އާއި ގުޅުނީމެވެ. އޭނާ ވިދާޅުވިއެވެ. “އެއްވެސް ބްރައުޒާ ވެންޑަރަކު ސެކްސަންޖޭއެސް އަކީ ޒަމާނީ އެކްސްއެމްއެލް ޓެކްނޮލޮޖީތައް ބްރައުޒާއަށް އިންޓަގްރޭޓް ކުރުމަށް ފެށޭ ތަނެއްގެ ގޮތުގައި ނަގަން ޝައުގުވެރިވި ނަމަ، އެމީހުންނާ އެކަމާ ބެހޭގޮތުން މަޝްވަރާ ކުރަން އަހަރެމެން ވަރަށް އުފާވާނެ.”— ނޯރމް ޓޯވީ-ވޯލްޝް
އެކަމަކު އިތުރަށް ބުނީ: "ސެކްސަންޖޭއެސް މިހާރު އޮތް ފޯމުގައި ނަގައިގެން ބަދަލެއް ނުގެނެސް ބްރައުޒާ ބިލްޑަށް ވައްޓާލުމަކީ އެންމެ ރަނގަޅު ގޮތް ކަމަށް އެއްވެސް މީހަކު ހީކުރިނަމަ އަޅުގަނޑު ވަރަށް ހައިރާންވާނެ
ފާހަގަކޮށްލަންޖެހޭ ކަމަކީ ޓޮވޭ-ވޯލްޝްގެ ވާހަކަތައް އައީ އެކްސްއެސްއެލްޓީ ޑިޕްރިކޭޝަން އިއުލާން ކުރުމުގެ ހަފްތާއެއްހާ ދުވަސް ކުރިންނެވެ. ނިންމުން އަހަރެންނަށް ކުރިއަށް ގޮސް ކުރިއަށް ދެވޭނެއެވެ. އެކަމަކު އަޅުގަނޑު އުންމީދު ކުރަނީ މިކަމުން އެކްސްޕޭތުގެ ބާރު ދައްކުވައިދީ، މޮޅު ކަންތައްތަކެއް ހާސިލް ކުރުމަށް ބޭނުންކުރާނެ ގޮތް ދައްކުވައިދޭ ގިނަ މިސާލުތަކެއް ލިބިގެންދާނެ ކަމަށް. އެއީ ބްރައުޒާ ސްޓޭކްގައި ހުރި ދުވަސްވީ ޓެކްނޮލޮޖީގެ ފުރިހަމަ މިސާލެއް ކަމަށާއި، މިއަދުވެސް ގިނަ ޔުޓިލިޓީތަކެއް ހުރި ނަމަވެސް، ދުވަހަކުވެސް އެ ޓެކްނޮލޮޖީއެއް އޮތްކަން ނޭނގުނު ނަމަވެސް ނުވަތަ އެ ޓެކްނޮލޮޖީއަށް އަތް ދިއްކުރުމަށް ވިސްނާފައި ނުވާ ކަމަށެވެ. އިތުރަށް ކިޔެވުން
“އެންހަންސިންގ ދަ ރެސިލިއެންސީ އޮފް އޮޓޮމެޓިކް ވެބް ޓެސްޓްސް ވިތު ނެޗުރަލް ލެންގުއޭޖް” (އޭސީއެމް ޑިޖިޓަލް ލައިބްރަރީ) ލިޔުނީ މަރޫން އައިލީ، ޔޫސުފް ބަކޫނީ، ނާދިރު ޖައްލޫލް، އަދި ރީމާ ކިލާނީމި ލިޔުމުގައި ރެސިލިއެންޓް ޓެސްޓް ލިޔުމަށް އެކްސްޕޭތުގެ ގިނަ މިސާލުތަކެއް ލިބިގެންދެއެވެ. އެކްސްޕޭތު (އެމްޑީއެން)އެކްސްޕޭތު މަސައްކަތްކުރާ ގޮތުގެ ތަފްސީލު ޓެކްނިކަލް ބަޔާނެއް ބޭނުންނަމަ މިއީ ފަށަން ރަނގަޅު ތަނެކެވެ. XPath Tutorial (ZVON)އަޅުގަނޑަށް މި ޓިއުޓޯރިއަލް އަކީ އަޅުގަނޑުގެ އަމިއްލަ އުނގެނުމުގައި އެންމެ އެހީތެރިވެދޭ ޓިއުޓޯރިއަލް ކަމަށް ފެނިފައިވަނީ، ގިނަ މިސާލުތަކާއި ސާފު ބަޔާންތަކުގެ ސަބަބުންނެވެ. XPatherމި އިންޓަރެކްޓިވް ޓޫލްގެ ސަބަބުން ސީދާ ކޯޑާއެކު މަސައްކަތް ކުރެވޭނެއެވެ.