क्या Google Chrome में XPath प्राप्त करने का कोई तरीका है?


346

मेरे पास एक वेबपेज है जिसे मैं YQL के साथ उपयोग करना चाहता हूं। लेकिन मुझे एक विशिष्ट आइटम के XPath की आवश्यकता है। मैं इसे Google Chrome के लिए डीबग टूल क्षेत्र में देख सकता हूं लेकिन मुझे उस XPath को कॉपी करने का कोई तरीका नहीं दिख रहा है।

वहाँ एक तरह से एक पूर्ण XPath की नकल है?


2
यदि आप क्रोम के अलावा फ़ायरफ़ॉक्स स्थापित करने के इच्छुक हैं, तो आप xpather एक्सटेंशन का उपयोग कर सकते हैं ।
एड्रियन ग्रिगोर

4
यदि वह फ़ायरफ़ॉक्स स्थापित करने के लिए तैयार है, तो यह पहले से ही फायरबग में निर्मित है।
वेरोजेन

2
@verhogen: मुझे इसकी जानकारी नहीं थी, भले ही मैं लगभग दैनिक आधार पर फायरबग का उपयोग कर रहा हूं। यदि कोई और व्यक्ति अधिक जानकारी में रुचि रखता है, तो वह यहां है: blog.browsermob.com/2009/04/…
एड्रियन ग्रिगोर

मैं इसे भी बढ़ा रहा हूं .... Google Chrome में Xpath हेल्पर दोनों के [Ctrl + Shift + X] शॉर्टकट कुंजी को दबाने या काले "X Path" बटन (रिंच बटन द्वारा) पर क्लिक करने से अच्छा काम नहीं करता है। जब पृष्ठ में JS त्रुटियाँ हों तो JS कंसोल। और मुझे क्रोम के लिए कोई अन्य अच्छा ऐड-ऑन नहीं मिला। मोज़िला के लिए "एक्सपीथ चेकर" ऐड-ऑन डाउनलोड न करें। मुझे उस ऐड के साथ भी समस्याएँ मिली हैं। फ़ायरफ़ॉक्स खुला होने पर "XPather" प्राप्त करें और इसे डाउनलोड करें (कुछ अन्य ब्राउज़र नहीं)। "XPather" राइट क्लिक एलिमेंट का उपयोग करने के लिए और "Show in XPather" चुनें
MacGyver

अब क्रोम में "XPather" एक्सटेंशन भी है। मुझे लगता है कि यह बहुत अच्छा है। विंडो को सक्रिय करने के लिए Alt-'x '। आप xpath इनपुट कर सकते हैं और मिलान किए गए परिणाम देख सकते हैं। मिलान किए गए परिणाम का प्रदर्शन काफी साफ-सुथरा है।
gm2008

जवाबों:


555

आप $xक्रोम जावास्क्रिप्ट कंसोल में उपयोग कर सकते हैं । कोई एक्सटेंशन की जरूरत नहीं है।

उदाहरण के लिए: $x("//img")

इसके अलावा वेब निरीक्षक में खोज बॉक्स xpath को स्वीकार करेगा


2
अच्छा - हालाँकि मुझे यकीन नहीं है कि यह मूल प्रश्न का उत्तर देता है। आपको इसके बारे में कैसे पता चला? मुझे आश्चर्य है कि कंसोल में अन्य समान फ़ंक्शन उपलब्ध हैं।
8

4
मुझे लगता है कि क्रोम ने अधिकांश फायरबग
huyz

99
वह पूछ रहा था "एक तत्व के लिए एक xpath स्ट्रिंग कैसे प्राप्त करें?", बजाय "मैं xpath द्वारा कैसे चयन करूं?" वह नहीं था?
मैक्स विलियम्स

3
दिलचस्प कैसे Ctrl+Spaceप्रकट नहीं करता है $x। यदि आप बस टाइप $xकरते हैं तो आप देख सकते हैं कि यह कैसे प्राप्त किया जाता है, इसलिए ओपी को यह निर्धारित करने में सक्षम होना चाहिए कि वे क्या चाहते हैं। उदाहरण के लिए; document.evaluate('//h1', document, null, XPathResult.STRING_TYPE, null).stringValue
आलासिर

5
@ घुइज़ - ऐसे ही कार्य उपलब्ध हैं। डेवलपर्स देखें । Google Chrome- developer- tools/ docs/console $ 0 विशेष रूप से उपयोगी है: DOM टूल में आपके द्वारा चुना गया अंतिम तत्व। $ ($ 0) इसे एक jQuery ऑब्जेक्ट बनाता है (यदि jQuery उपलब्ध है)। इसके अलावा, लेख में प्रतिलिपि ($ 0) का उल्लेख नहीं किया गया है, जो क्लिपबोर्ड पर प्रतिलिपि बनाता है। (संयोग से, मैंने सिर्फ $ x की खोज की, और इस धागे को पाया, क्योंकि मैं कंसोल में किसी और चीज़ के लिए उस चर का उपयोग करने की कोशिश कर रहा था।)
नाथन लॉन्ग

244

नोड पर राइट क्लिक करें => "XPath कॉपी करें"


19
यह xpath प्राप्त करने का सबसे भंगुर तरीका है, यह सामग्री परिवर्तन के रूप में टूटने की संभावना है
जुआन मेंडेस

8
@ JuanMendes विकल्प क्या है?
नैट

9
@ कोई आसान विकल्प नहीं है यदि आप चाहते हैं कि आपका XPath अभी भी दस्तावेज़ में बदलाव के रूप में काम करे। आपको बस इसके बारे में सोचना है और अपने XPath में शानदार जानकारी नहीं जोड़ने का प्रयास करना है। अंगूठे का एक नियम यह है कि आपका XPath जितना लंबा होगा, अन्य संदर्भों में काम करने की संभावना उतनी ही कम होगी।
जुआन मेंडेस

यह आपको पृष्ठ पर अद्वितीय तत्व के लिए वास्तविक XPath नहीं देता है। यह काफी मुश्किल होगा।
CJ7

1
Google क्रोम के नए संस्करण में, आपको नोड पर राइट क्लिक करना होगा और कॉपी XPath आइटम का चयन करना होगा जो कॉपी विकल्प में चला गया है।
ओमिड नासरी

92

उपरोक्त सभी उत्तर सही हैं यहां स्क्रीनशॉट के साथ एक और तरीका भी है।

क्रोम से:

  1. जिस आइटम पर आप xpath ढूंढने का प्रयास कर रहे हैं, उस पर "निरीक्षण" पर राइट क्लिक करें
  2. कंसोल पर हाइलाइट किए गए क्षेत्र पर राइट क्लिक करें।
  3. कॉपी xpath पर जाएं

यहां छवि विवरण दर्ज करें


24

XPath हेल्पर एक्सटेंशन आपको क्या चाहिए: https://chrome.google.com/webstore/detail/hgimnogjllphhhkhlmbbmlgjoejdpjl


क्या किसी को ubuntu पर इसके लिए कीबोर्ड कमांड पता है? crtl-shift-x और कमांड-
शिफ्ट-

1
@xiatica, क्या आपने एक नए / ताज़ा टैब में प्रयास किया है? ध्यान दें कि एक्सटेंशन उन टैब में काम नहीं करेगा जो स्थापना से पहले खुले थे; इस तरह के टैब को ताज़ा किया जाना चाहिए।
asadovsky

13

क्रोम में अब किसी एक्सटेंशन की जरूरत नहीं है। आप जिस भी तत्व के लिए xpath चाहते हैं उस पर राइट क्लिक करें और "इंस्पेक्ट एलिमेंट" पर क्लिक करें और फिर इंस्पेक्टर के अंदर, तत्व पर राइट क्लिक करें और "कॉपी एक्सपैथ" पर क्लिक करें।


11
यह विधि पहले से ही पिछले उत्तर में बताई गई है, पिछले साल पोस्ट की गई: stackoverflow.com/a/11087358/938089
Rob W

12

Google Chrome एक बिल्ट-इन डीबगिंग टूल प्रदान करता है, जिसे " Chrome DevTools " कहा जाता है , जिसमें एक आसान विशेषता शामिल होती है, जो बिना किसी तृतीय पक्ष एक्सटेंशन के XPath / CSS चयनकर्ताओं का मूल्यांकन या सत्यापन कर सकती है।

यह दो दृष्टिकोणों द्वारा किया जा सकता है:

XPath / CSS चयनकर्ताओं का मूल्यांकन करने और DOM में मिलान नोड्स को उजागर करने के लिए तत्वों के पैनल के अंदर खोज फ़ंक्शन का उपयोग करें। कंसोल पैनल में $ x ("some_xpath") या $$ ("css-selectors") को निष्पादित करें, जो मूल्यांकन और सत्यापन दोनों करेगा।

एलिमेंट्स पैनल से

  1. Chrome DevTools को खोलने के लिए F12 दबाएँ।

  2. तत्वों के पैनल को डिफ़ॉल्ट रूप से खोला जाना चाहिए।

  3. पैनल में DOM सर्च को इनेबल करने के लिए Ctrl + F दबाएं।

  4. मूल्यांकन करने के लिए XPath या CSS चयनकर्ताओं में टाइप करें।

  5. यदि मिलान किए गए तत्व हैं, तो उन्हें DOM में हाइलाइट किया जाएगा। हालांकि, अगर DOM के अंदर मैचिंग स्ट्रिंग्स हैं, तो उन्हें वैध परिणाम भी माना जाएगा। उदाहरण के लिए, सीएसएस चयनकर्ता हेडर में सब कुछ (इनलाइन सीएसएस, स्क्रिप्ट आदि) से मेल खाना चाहिए, जिसमें मैच हेडर होता है, बजाय केवल तत्वों के।

यहां छवि विवरण दर्ज करें

कंसोल पैनल से

  1. Chrome DevTools को खोलने के लिए F12 दबाएँ।

  2. कंसोल पैनल पर जाएँ।

  3. XPath में टाइप $x(".//header")करें मूल्यांकन और मान्य करना पसंद करें।

  4. CSS चयनकर्ताओं में टाइप करें जिनका $$("header")मूल्यांकन और सत्यापन करना पसंद है।

  5. कंसोल निष्पादन से चेक किए गए परिणाम।

यदि तत्वों का मिलान किया जाता है, तो उन्हें एक सूची में वापस कर दिया जाएगा। अन्यथा एक खाली सूची [] दिखाई जाती है।

$x(".//article")
[<article class="unit-article layout-post">…</article>]

$x(".//not-a-tag")
[ ]

यदि XPath या CSS चयनकर्ता अमान्य है, तो एक अपवाद लाल पाठ में दिखाया जाएगा। उदाहरण के लिए:

$x(".//header/")
SyntaxError: Failed to execute 'evaluate' on 'Document': The string './/header/' is not a valid XPath expression.

$$("header[id=]")
SyntaxError: Failed to execute 'querySelectorAll' on 'Document': 'header[id=]' is not a valid selector.

10

आइए आपको किसी भी तत्व के xpath को खोजने के लिए एक सरल सूत्र बताते हैं:

1- ब्राउजर में ओपन साइट

2- एलिमेंट सलेक्ट करें और उस पर राइट क्लिक करें

3- इंस्पेक्शन एलिमेंट ऑप्शन पर क्लिक करें

4- चयनित HTML पर राइट क्लिक करें

5- xpath को कॉपी करने के लिए विकल्प का चयन करें। जहां जरूरत हो, वहां इसका इस्तेमाल करें

यह वीडियो लिंक आपके लिए मददगार होगा। http://screencast.com/t/afXsaQXru

नोट: xpath के अग्रिम विकल्पों के लिए आपको अपने html का regex या पैटर्न पता होना चाहिए।


3
इसका परीक्षण करने के लिए Chrome कंसोल का उपयोग किया और इसे $x('//*[@id="answer-33492958"]/table/tbody/tr[1]/td[1]/div/a[1]')[0].click();
आगे बढ़ाया

8

xpathOnClick के लिए आप क्या देख रहे हैं: https://chrome.google.com/extensions/detail/ikbfbhbdjpjnalaooidkdbjjknhghhbo

टिप्पणियाँ पढ़ें, हालांकि, यह वास्तव में xpath प्राप्त करने के लिए तीन क्लिक लेता है।


क्रोम 12.0.742.124 के साथ ubuntu 10.04 पर काम करने के लिए प्रकट नहीं होता है, इंस्टॉल करता है लेकिन जब xpath आइकन पर क्लिक करते हैं, तो पृष्ठ पर क्लिक करें (पहली बार xpath पॉपअप को खारिज करने के लिए), फिर एक पृष्ठ तत्व पर क्लिक करें (js कंसोल में xpath दिखाने के लिए) ) .... सांत्वना में कुछ भी नहीं दिखा। प्लगइन साइट पर परीक्षण किया गया
xiatica

8

क्रोम के लिए नवीनतम अद्यतन के रूप में आप अब तत्व निरीक्षक में किसी भी तत्व पर क्लिक कर सकते हैं और XPath को क्लिपबोर्ड पर कॉपी कर सकते हैं।


5

उदाहरण के लिए, क्रोम के लिए:

  1. उस आइटम पर राइट-क्लिक "निरीक्षण" करें जिसे आप XPath खोजने की कोशिश कर रहे हैं।
  2. HTML DOM पर हाइलाइट किए गए क्षेत्र पर राइट-क्लिक करें।
  3. कॉपी पर जाएं> 'कॉपी XPath' चुनें।
  4. उपरोक्त चरण के बाद, आपको DOM से तत्व का पूर्ण XPath प्राप्त होगा।
  5. आप इसे XPath के सापेक्ष बनाने के लिए परिवर्तन कर सकते हैं (क्योंकि यदि DOM बदल जाता है, फिर भी आपका XPath तत्व ढूंढने में सक्षम होगा)।

ए। ऐसा करने के लिए, ब्राउज़र के 'एलिमेंट्स' पैनल को खोलकर, CTRL + F दबाएं, XPath पेस्ट करें।

ख। निम्नलिखित उदाहरण में वर्णित परिवर्तन करें।

पूर्ण xpath = // * [@ id = "ऐप"] / div [1] / हैडर / नौसेना / div [2] / ul / li [2] / div / बटन

संबंधित xpath = // div // nav / div [2] / ul / li [2] / div / बटन

जब आप परिवर्तन करते हैं:

  1. सुनिश्चित करें कि XPath DOM के भीतर अद्वितीय है।
  2. अभी भी वेब तत्व को DOM और वेबपेज पर चुना जाता है।

3

जिस तत्व के लिए आप xpath चाहते हैं उस पर बस राइट-क्लिक करें और आपको इसे कॉपी करने के लिए एक मेनू आइटम दिखाई देगा। यह तब अस्तित्व में नहीं आया होगा जब ओपी ने अपना पद बनाया था लेकिन अब यह निश्चित रूप से वहां है।


2

फ़ायरफ़ॉक्स में फ़ायरबग में, आप निरीक्षण करने के बाद एक तत्व पर राइट क्लिक कर सकते हैं, और कॉपी XPath का चयन कर सकते हैं। सुचारू रूप से काम करने के लिए मुझे ChromYQLip नहीं मिला।


1

आप Chrome वेब एक्सटेंशन TruePath का उपयोग करने का प्रयास कर सकते हैं, जो गतिशील रूप से वेब पेज पर राइट क्लिक पर संबंधित XPath उत्पन्न करता है और मेनू आइटम के रूप में सभी XPath प्रदर्शित करता है।


0

थोड़ा OT, लेकिन शायद उपयोगी: मैक क्रोम पर, हालांकि आप देव उपकरण पैनल में खोज बॉक्स से xpath की प्रतिलिपि नहीं बना सकते हैं (इसके बजाय, नोड को HTML के रूप में कॉपी करते हैं), आप पाठ को बाहरी संपादक में खींच सकते हैं और छोड़ सकते हैं।


0

मैंने लगभग सभी उपलब्ध एक्सटेंशनों को आज़माया और नीचे दिए गए सर्वश्रेष्ठ में से एक पाया।

चेरपथ एक्सटेंशन लिंक

फायरपाथ की तरह, यह एक्सटेंशन आपको सीधे Xpath देता है जब आप निरीक्षण पर क्लिक करते हैं।

यहां छवि विवरण दर्ज करें


0

प्रेस Cntl + Shift + C
तत्व आप अपने प्राप्त करना चाहते हैं का चयन XPathउस पर क्लिक करके
right clickकंसोल में प्रकाश डाला ओर से
copy->copy XPath

यहां छवि विवरण दर्ज करें


-1

इस एक्सटेंशन का उपयोग करें, यह आईडी या वर्ग के आधार पर xpaths उत्पन्न करता है, जो कि शायद आप उपयोग करना चाहते हैं।

ब्राउज़र आइकन पर क्लिक करें, पैनल को पृष्ठ के दाहिने कोने पर दिखाया गया है, फिर प्रारंभ निरीक्षण पर क्लिक करें, फिर अपना xpath प्राप्त करने के लिए किसी भी तत्व पर क्लिक करें।

XPath जेनरेटर


@robbyoconnor यदि आपने कुछ ब्लैकबॉक्स परीक्षण या क्रॉलिंग किया है, तो आपको पता होगा कि ब्राउज़र उत्पन्न xpath वह स्थिर नहीं है।
--शरद
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.