उपयोगी टिप्स

Xpath html अनुरोधों के उदाहरण

Pin
Send
Share
Send
Send


जिन लोगों को सेलेनियम के साथ स्वचालन में अपने हाथ गंदे मिले, वे एक गलत तत्व लोकेटर के कारण परीक्षण में असफल होने के दर्द से परिचित हैं और क्योंकि उन्हें नहीं पता था कि XPath, CSS रास्तों को सही ढंग से कैसे प्राप्त किया जाए। फायरबग इन समस्याओं का समाधान है, और यह स्वचालन पर आपके रोबोट को भी गति देगा। यह आलेख वर्णन करता है कि वेब पेज पर किसी भी तत्व पर फायरबग का उपयोग करके XPath और CSS पथ कैसे प्राप्त करें। XPath HTML टैग्स का एक संयोजन है जो एक वेब पेज के एक विशेष तत्व की पहचान करता है।

वेब पेज साइटों के लिए एक अनुरोध बनाएँ

मैं आपके ध्यान में एक छोटी सी प्रयोगशाला लाता हूं, जिसके दौरान मैं वेब पेज के लिए xpath अनुरोधों के निर्माण का प्रदर्शन करूंगा। आप मेरे अनुरोधों को दोहराने में सक्षम होंगे और सबसे महत्वपूर्ण बात यह है कि आप को पूरा करने का प्रयास करें। मुझे आशा है कि यह शुरुआती और प्रोग्रामर के लिए एक्सएमएल में एक्सपैथ से परिचित होने के लिए लेख को समान रूप से दिलचस्प बना देगा।

प्रयोगशाला के लिए, हमें चाहिए:
- एक्सएचटीएमएल वेब पेज,
- ऐड-ऑन के साथ मोज़िला फ़ायरफ़ॉक्स ब्राउज़र,
- फायरबग,
- अग्निपथ,
(आप दृश्य xpath समर्थन के साथ किसी अन्य ब्राउज़र का उपयोग कर सकते हैं)
- थोड़ा समय।

प्रयोग के लिए एक वेब पेज के रूप में, मैं वर्ल्ड वाइड वेब कंसोर्टियम वेबसाइट ('http://w3.org') के मुख्य पृष्ठ का प्रस्ताव करता हूं। यह संगठन है जो xquery (xpath) भाषाओं, xHTML विनिर्देश और कई अन्य इंटरनेट मानकों को विकसित करता है।

W3.org मुख्य पृष्ठ के xhtml कोड से xpath अनुरोधों का उपयोग करके कंसोर्टियम सम्मेलनों के बारे में जानकारी प्राप्त करें।
आइए xpath अनुरोध लिखना शुरू करें।

पहला xpath अनुरोध

FireBug में Firepath टैब खोलें, चयनकर्ता के साथ विश्लेषण के लिए तत्व का चयन करें, क्लिक करें: Firepath ने चयनित तत्व के लिए एक xpath अनुरोध बनाया।

यदि आप पहली घटना के हेडर का चयन करते हैं, तो अनुरोध इस तरह होगा:

अनावश्यक इंडेक्स को हटाने के बाद, क्वेरी "हेडर" प्रकार के सभी तत्वों के अनुरूप होगी।

फायरपाथ क्वेरी से मेल खाने वाले तत्वों पर प्रकाश डालता है। आप वास्तविक समय में देख सकते हैं कि दस्तावेज़ का कौन सा भाग क्वेरी से मेल खाता है।

आगे बढ़ो। हम कॉन्फ्रेंस वेन्यू और उनके प्रायोजकों को चयनकर्ता का उपयोग करके या पहली क्वेरी को संशोधित करके खोजने के लिए क्वेरी बनाते हैं।

सम्मेलन स्थलों के बारे में जानकारी के लिए अनुरोध:
.//* ई@@] / उल / ली / डिव / पी

इसलिए हमें प्रायोजकों की सूची मिलती है:
.//* ई@@] / उल / ली / डिव / पी

Xpath सिंटैक्स

आइए निर्मित प्रश्नों पर वापस जाएं और देखें कि वे कैसे काम करते हैं।
आइए पहले अनुरोध पर विस्तार से विचार करें

इस क्वेरी में, मैंने xpath की क्षमताओं को प्रदर्शित करने के लिए तीन भागों पर प्रकाश डाला। (भागों में विभाजन आकर्षक है)

पहला भाग
.// - वर्तमान संदर्भ से शून्य या अधिक पदानुक्रम स्तर तक पुनरावर्ती वंश। हमारे मामले में, वर्तमान संदर्भ दस्तावेज़ की जड़ है।

दूसरा भाग
* - कोई भी तत्व
[@। XHTML तत्व पहचानकर्ता अद्वितीय होना चाहिए। इसलिए, क्वेरी "एक विशिष्ट आईडी के साथ किसी भी तत्व" को केवल उसी नोड को वापस करना चाहिए जिसे हम खोज रहे हैं।

हम बदल सकते हैं * सटीक नोड नाम के लिए div इस अनुरोध में
div [@]

इस प्रकार, हम दस्तावेज़ पेड़ को वांछित नोड div [@] पर जाते हैं। हम इस बात से बिल्कुल चिंतित नहीं हैं कि DOM ट्री में कौन से नोड्स हैं और कितने पदानुक्रम स्तर ऊपर बने हुए हैं।

तीसरा भाग
/ उल / ली / दिवा / पी / ए -एक्सपैथ-पथ एक विशिष्ट तत्व के लिए। पथ में चरणों को संबोधित करने और नोड्स (उल, ली, आदि) की स्थिति शामिल है। चरणों को "/" (स्लैश) द्वारा अलग किया जाता है।

Xpath संग्रह

सदैव विधेय या संबोधन चरणों का उपयोग करके ब्याज की मात्रा तक पहुँचना संभव नहीं है। बहुत बार पदानुक्रम के समान स्तर पर एक ही प्रकार के कितने नोड होते हैं और "केवल पहले" या "केवल दूसरे" नोड्स का चयन करना आवश्यक होता है। ऐसे मामलों के लिए, संग्रह प्रदान किए जाते हैं।

Xpath संग्रह आपको इसके सूचकांक द्वारा एक तत्व का उपयोग करने की अनुमति देता है। सूचकांक उस क्रम के अनुरूप हैं जिसमें मूल दस्तावेज में तत्व प्रस्तुत किए गए थे। संग्रह में सीरियल नंबर एक से गिना जाता है।

इस तथ्य के आधार पर कि "सम्मेलन नाम" के बाद "स्थल" हमेशा दूसरा पैराग्राफ होता है, हमें निम्नलिखित प्रश्न मिलते हैं:
.//* ई@@] / उल / ली / डिव / पी
जहां p सूची में प्रत्येक नोड के लिए सेट में दूसरा तत्व है / ul / li / div।

इसी तरह, हम अनुरोध द्वारा प्रायोजकों की सूची प्राप्त कर सकते हैं:
.//* ई@@] / उल / ली / डिव / पी

कुछ xpath फ़ंक्शन

संग्रह के भीतर तत्वों के साथ काम करने के लिए xpath में कई कार्य हैं। मैं उनमें से कुछ को ही दूंगा।

अंतिम ():
संग्रह में अंतिम आइटम देता है।
क्वेरी ul / li / div / p [last ()] - ul सूची के प्रत्येक नोड के लिए अंतिम पैराग्राफ वापस करेगा।
पहला () फ़ंक्शन प्रदान नहीं किया गया है। पहले आइटम तक पहुंचने के लिए, "1" सूचकांक का उपयोग करें।

पाठ ():
किसी तत्व की परीक्षण सामग्री लौटाता है।
.// एक पाठ () = 'पुरालेख'] - हम पाठ "पुरालेख" के साथ सभी लिंक मिलते हैं।

स्थिति () और मॉड:
स्थिति () - सेट में तत्व की स्थिति लौटाता है।
mod - शेष भाग।

इन कार्यों के संयोजन से हम प्राप्त कर सकते हैं:
- विषम तत्व उल / ली [स्थिति] (मॉड 2 = 1]
- यहां तक ​​कि तत्व: उल / ली [स्थिति] (मॉड 2 = 0]

तुलना संचालन

  • - तार्किक "अधिक"
  • = - तार्किक "से बड़ा या बराबर"

उल / ली [स्थिति ()> 2], उल / ली [स्थिति () - 3 नंबर से शुरू होने वाली वस्तुओं की सूची और इसके विपरीत।

निष्कर्ष में

एक सरल उदाहरण में, हमने वेब पेज नोड्स तक पहुंचने के लिए xpath की क्षमताओं को देखा।
Xpath xml और xhtml, तत्वों को बदलने वाले तत्वों तक पहुँचने के लिए उद्योग मानक है।
आप इसका इस्तेमाल किसी भी html पेज को पार्स करने के लिए कर सकते हैं। यदि स्रोत html-code में महत्वपूर्ण मार्कअप त्रुटियां हैं, तो इसे स्पष्ट रूप से पास करें। त्रुटियां ठीक हो जाएंगी।

Xpath के पक्ष में वेब पृष्ठों को पार्स करते समय नियमित अभिव्यक्तियों को अस्वीकार करने का प्रयास करें।
यह आपके कोड को आसान, अधिक समझने योग्य बना देगा। आप कम गलतियाँ करते हैं। डिबगिंग का समय कम करें।

Pin
Send
Share
Send
Send