ultimate xpath writing cheat sheet tutorial with syntax
किसी भी प्रकार के वेब तत्व के लिए अंतिम XPATH लिखने के शीर्ष 20 तरीके (XPATH कभी अमान्य नहीं होंगे):
एक वेब एप्लिकेशन विभिन्न प्रकार के वेब तत्वों से बना होता है जैसे बटन पर क्लिक करने के लिए वेब तत्व, टेक्स्ट टाइप करने के लिए इनपुट वेब तत्व, ड्रॉप-डाउन, रेडियो बटन आदि।
इन वेब तत्वों को टैग या नोड भी कहा जाता है।
जब वेब अनुप्रयोगों को स्वचालित करने की बात आती है, तो यह एक स्वचालन स्क्रिप्ट लिखने के साथ शुरू होता है जो वेब तत्व को खोजेगा, इस पर एक क्रिया करें जैसे कि, एक बटन पर क्लिक करें, इनपुट बॉक्स में पाठ दर्ज करें, एक चेकबॉक्स चुनें, एक रेडियो बटन चुनें, ऊपर या नीचे स्क्रॉल करें और अंत में कार्रवाई के बदले में अपेक्षित व्यवहार को सत्यापित करें।
क्या Android के लिए सबसे अच्छा एमपी 3 डाउनलोडर है
आप क्या सीखेंगे:
- XPath क्या है और यह कैसा दिखता है?
- किसी भी वेब तत्व के लिए XPath लिखने के शीर्ष 20 तरीके
- # 1) उल्टा लुकअप
- # 2) चर और कस्टम मूल्यों का उपयोग करना
- # 3) 'एक्सएमएल' टैग, 'और' आदि का उपयोग करना
- # 4) गुण और तालिका XPATH का उपयोग करना
- # 5) गुण, तालिकाओं और पाठ का उपयोग करना
- # 6) नेस्टेड एट्रीब्यूट का उपयोग करके XPATH उत्पन्न करना
- # 7) एक्सपीथ जेनरेशन, डिवाइसेस और बटन को मिलाकर XPath जनरेशन
- # 8) XPATH CONTAINS, REVERSE LOOKUP, आदि का उपयोग कर उत्पन्न करना।
- # 9) XPath जेनरेशन रिलेटिव, CONTAINS, REVERSE, FOLLOWING SIBLING, आदि का उपयोग करके।
- # 10) एक्सपीथ जेनरेशन एट्रिब्यूट्स, कॉन्टेक्ट्स, रिवर्स, प्रीवेडिंग-सिबलिंग, डिव, और स्पैन का उपयोग कर
- # 11) गुण, XML टैग आदि का उपयोग करना
- # 12) एक्सपीर जेनरेशन में नहीं बल्कि एक्सपे्रस पेज को देखते हुए और कॉन्टेक्ट्स को देखते हुए
- # 13) युक्तियों और विशेषताओं का उपयोग करना
- # 14) गुण का उपयोग करना, भाई-बहन और वंशज का अनुसरण करना
- # 15) भाई-बहन, वंशज और पाठ के बाद गुण का उपयोग करना
- # 16) हैडर और टेक्स्ट का उपयोग करना
- # 17) हैडर पाठ, भाई बहन, पथ, आदि का उपयोग करना।
- # 18) गुण, युक्तियों और पूर्ववर्ती भाई-बहनों का उपयोग करना
- # 19) आईडी एट्रीब्यूट, कुछ विशिष्ट टेक्स्ट और रिवर्स लुकअप का उपयोग करके ड्रॉप-डाउन की तलाश करना
- # 20) 'आईडी' को जोड़ना और विशिष्ट पाठ के साथ लिंक की तलाश करना
- निष्कर्ष
- अनुशंसित पाठ
XPath क्या है और यह कैसा दिखता है?
एक तत्व खोजना मानचित्र पर किसी के घर को खोजने जैसा है। बिना किसी बाहरी मदद के हम एक मित्र का घर ढूंढ सकते हैं, यही है कि हमारे पास एक नक्शा होना चाहिए और पता होना चाहिए कि (घर) क्या है।
इस सादृश्य को हमारे मामले में रखने के लिए, मानचित्र का उपयोग DOM (HTML टैग, जावास्क्रिप्ट, आदि) के रूप में किया जाएगा, जहां सभी वेब तत्व मौजूद हैं, साथ ही विशिष्ट वेब तत्व जिसे हम खोजना चाहते हैं।
एक बार जब किसी तत्व का अद्वितीय पता या पथ मिल जाता है, तो स्वचालन स्क्रिप्ट फिर परीक्षण परिदृश्य के आधार पर उस पर कुछ क्रियाएं करेगी। उदाहरण के लिए, आप पृष्ठ के URL को सत्यापित करना चाहते हैं जो एक बटन पर क्लिक करने के बाद खुलता है।
हालांकि, वेब तत्व का एक अनूठा पता / पथ खोजने के लिए सीधे आगे नहीं है क्योंकि समान टैग, समान गुण मान, समान पथ जिससे 'XPATH' नामक वेब तत्व के लिए सटीक अनन्य पता बनाना मुश्किल हो सकता है।
यहां, हम किसी भी प्रकार के वेब तत्व के लिए वैध और अद्वितीय XPATH उत्पन्न करने के लिए कुछ बेहतरीन और प्रभावी तकनीकों में गोता लगाते हैं।
अनुशंसित पढ़ें => सेलेनियम में XPath का उपयोग करके वेब तत्वों को पहचानें
कभी-कभी आप ब्राउज़र एक्सटेंशन का उपयोग करके आसानी से XPaths बना सकते हैं लेकिन मेरे में स्वचालन परीक्षण करियर, मैंने अनगिनत स्थितियों का सामना किया है जहाँ पारंपरिक ब्राउज़र एक्सटेंशन काम नहीं करते हैं और आपको अपनी स्वयं की रचनात्मकता का उपयोग करके अपने स्वयं के अनुकूलित XPaths के साथ आना चाहिए। मुझे यकीन है कि आपके पास समान स्थितियों का सामना करना पड़ेगा या सामना करना पड़ेगा।
इस ट्यूटोरियल में, हम 20 सर्वोत्तम तरीकों पर एक नज़र डालेंगे कि कैसे एक वेब तत्व के लिए परम XPath बनाने के लिए इस तरह से कि यहां तक कि जब आपका कोड बदल जाए, तो आपका XPath हर समय मान्य रहेगा (जब तक कि डेवलपर संपूर्ण को फिर से न लिख ले। सुविधा / मॉड्यूल)।
इन सभी तकनीकों को जानने के बाद, आप अपने स्वयं के XPath लिखने के मास्टर बन जाएंगे और अवैध होने की बहुत कम संभावना के साथ हत्यारा XPaths लिखने में सक्षम होंगे।
सबसे पहले, XPath सिंटैक्स को समझने के साथ शुरुआत करें और इसके प्रत्येक भाग को परिभाषित करें।
नीचे दी गई छवि दिखाएगी कि XPath प्रत्येक भाग के विवरण के साथ कैसा दिखेगा:
- //: वर्तमान नोड जैसे इनपुट, डिव आदि का चयन करें।
- टैग नाम: वेब एलिमेंट / नोड का टैग्नैम
- @: विशेषता का चयन करें
- विशेषता: नोड / विशेष वेब तत्व का नाम दें
- मान: गुण का मान
बस यहाँ कुछ सुझाव साझा करना चाहते हैं कि XPath की वजह से 80% समय मेरी स्वचालन परीक्षण स्क्रिप्ट विफल रही। इसके कारण या तो XPath के लिए कई वेब तत्व हैं या XPath मान्य नहीं है या पृष्ठ अभी तक लोड नहीं किया गया है।
इसलिए, जब भी आपका परीक्षण मामला विफल होता है:
- अपने XPath को कॉपी करें।
- यह सत्यापित करने के लिए DOM में ब्राउज़र (F12 या डेवलपर टूल विंडो) में खोजें कि क्या यह वैध है या नहीं (नीचे की छवि देखें)।
प्रो टाइप 1: सुनिश्चित करें कि यह अद्वितीय है और जब आप DOM में दो बार खोजते हैं तो कोई अन्य वेब तत्व प्रकट नहीं होता है।
प्रो टाइप 2: कभी-कभी कोई समयावधि जारी होती है, जिसका अर्थ है कि आपका वेब तत्व / पृष्ठ अभी तक लोड नहीं हुआ है, जबकि स्क्रिप्ट इसकी तलाश कर रही थी, इसलिए कुछ प्रतीक्षा समय और फिर से जोड़ें।
प्रो टाइप 3: वेब तत्व की खोज करने से पहले संपूर्ण DOM को प्रिंट करने का प्रयास करें। इस तरह से आप कंसोल में देखकर बता सकते हैं कि आपका वेब तत्व DOM में मौजूद है या नहीं।
इससे पहले कि हम XPath में गहराई से देखें, एक महत्वपूर्ण बात जो मैं साझा करना चाहता हूं, वह यह है कि यदि आपकी विकास टीम तक सीधी पहुंच है या यदि आपकी टीम वहां स्थित है, तो आप अपनी विशिष्ट आईडी प्रदान करने के लिए अपनी विकास टीम से पूछें। प्रत्येक वेब तत्व या कम से कम जिन्हें आप स्वचालन के लिए उपयोग करना चाहते हैं और यह आपके समय की बहुत बचत करेगा।
यदि यह संभावना नहीं है, तो आपको अपनी रचनात्मकता का उपयोग करने और अपने स्वयं के अनुकूलित XPaths के साथ आने की आवश्यकता हो सकती है और यही हम अब सीखने जा रहे हैं।
किसी भी वेब तत्व के लिए XPath लिखने के शीर्ष 20 तरीके
आइए एक हत्यारे XPath को शीर्ष 20 तरीके बनाने के लिए गहरा गोता लगाएँ।
# 1) उल्टा लुकअप
मान लीजिए कि आप एक बटन पर क्लिक करना चाहते हैं और एक समान बटन है। दोनों बटन में आईडी विशेषताएँ हैं, लेकिन वे गतिशील हैं और दोनों बटन तत्वों में कोई भी विशेषता अद्वितीय नहीं है।
नीचे के परिदृश्य में हम 'टेस्ट इंटरएक्टिव' के 'सेटिंग' बटन पर क्लिक करना चाहते हैं।
कोड
यदि आप 'सेटिंग' बटन को देखते हैं, तो दोनों कोड समान हैं। पारंपरिक तरीकों जैसे आईडी, नाम, मूल्य, सम्मिलन आदि का उपयोग करके, उनमें से कोई भी उदाहरण के लिए काम नहीं करेगा।
// * ((पाठ (), (सेटिंग ’) शामिल हैं), इसके परिणामस्वरूप दो वेब तत्व होंगे। इसलिए यह अद्वितीय नहीं है।
तो यहाँ अंतिम रणनीति है,
>> सबसे पहले, निकटतम टैग ढूंढें जो अद्वितीय है और इस मामले में, यह है
XPATH: “//*(@id='rcTEST')
>> दूसरा, इच्छित वेब तत्व के लिए निकटतम वेब तत्व खोजें, जिसमें इस मामले में (पाठ), Interactive टेस्ट इंटरएक्टिव ’हो। अब हम उसी स्थान पर हैं जहां ’सेटिंग’ बटन मौजूद है, लेकिन उस पर क्लिक करने के लिए, हमें पहले नीचे दिखाए गए अनुसार डबल डॉट्स का उपयोग करके मुख्य पर जाना होगा।
XPATH: “//*(@id='rcTEST')//*(contains(text(), 'TEST Interactive'))/..
>> जैसा कि आप देख सकते हैं, हम उस स्तर पर हैं जिसमें button सेटिंग ’बटन के रूप में दूसरा वेब तत्व है। इसमें दो बटन हैं और हम दूसरे बटन पर जाना चाहते हैं जो 'सेटिंग' बटन है। अंत में end / बटन (2) जोड़कर हम नीचे दिखाए गए अनुसार ’सेटिंग’ बटन के लिए हमारे अद्वितीय XPATH प्राप्त कर सकते हैं।
अंतिम XPATH:
“//*(@id='rcTEST')//*(contains(text(), 'TEST Interactive'))/../button(2)”
यहाँ उत्पन्न करने का एक और तरीका है अगर आपको लगता है कि वे वेब तत्व प्रकार को 'बटन' से बदलकर कुछ और कर सकते हैं।
“//*(@id='rcTEST')//*(contains(text(), 'TEST Interactive'))/..//*(contains(text(), 'Setting'))”
या 'निम्नलिखित-भाई' का उपयोग करना
“//*(@id='rcTEST')//*(contains(text(), 'TEST Interactive'))/following-sibling::button”
# 2) चर और कस्टम मूल्यों का उपयोग करना
बता दें कि एक वेब एप्लिकेशन है जिसमें FTP ('फाइल ट्रांसफर प्रोटोकॉल') फाइल अपलोड / डाउनलोड करने की सुविधा है और आपके पास डाउनलोड लिंक पर क्लिक करके एक विशिष्ट फाइल डाउनलोड करने के लिए एक परीक्षण मामला है।
सबसे पहले, हम उस फ़ाइल नाम को परिभाषित कर सकते हैं जिसे हम एक चर के रूप में देख रहे हैं।
स्ट्रिंग प्रत्याशित नाम = 'Test1';
SQL सर्वर 2012 साक्षात्कार सवाल और जवाब
अब XPATH का उपयोग करके हम वास्तविक फ़ाइल नाम पा सकते हैं।
“String actualFileName = WebDriverAccess.getDriver().findElement (By.xpath('//*'+fileName +'/tr/td(1)')).getAttribute('title');”
उपरोक्त XPath में,… ‘/ tr / td (1) .getAttribute (' शीर्षक ') 'विशिष्ट पंक्ति और पहले कॉलम पर जाएगा और शीर्षक विशेषता का मान प्राप्त करेगा। हम वास्तविक फ़ाइल नाम को दूसरे चर में संग्रहीत कर सकते हैं।
एक बार जब हमारे पास अपेक्षित और वास्तविक फ़ाइल नाम दोनों होते हैं, तो हम दोनों की तुलना कर सकते हैं और यदि दोनों मैच होते हैं तो हम बस इसके डाउनलोड लिंक पर क्लिक कर सकते हैं।
(if acutalFileName == expectedFileName) { WebDriverAccess.getDriver().findElement(By.xpath('//*'+fileName +'/tr/td(4)')).click(); }
हम प्रत्येक पंक्ति के माध्यम से एक लूप भी बना सकते हैं और फ़ाइल नाम की पुष्टि तब तक कर सकते हैं जब तक आप इसे ढूंढ नहीं लेते।
Loop(int count <30) { String actualFileName = WebDriverAccess. getDriver ().findElement (By. xpath ('//*'+acutalFileName +'/tr(' + count + ')/td(1)')).getAttribute('title'); (if acutalFileName == expectedFileName) { WebDriverAccess. getDriver ().findElement(By. xpath ('//*'+fileName +'/tr/td(4)')).click(); } Count++; }
हम अनुकूलित टैग का उपयोग करके अद्वितीय XPATH उत्पन्न कर सकते हैं और अन्य शर्तें जोड़ सकते हैं।
उदाहरण के लिए, मान लें कि हमारा इच्छित वेब तत्व मुख्य टैग में मौजूद है, और कई पते टैग हैं, लेकिन आप केवल एक विशिष्ट खोज करना चाहते हैं। सभी पते टैग में एक वर्ग विशेषता होती है, इस प्रकार हम शुरू कर सकते हैं।
// address(@class='ng-scope ng-isolate-scope')
हमने देखा कि हमारा इच्छित वेब तत्व एक टैग में है जिसमें कुछ पाठ हैं जिन्हें 'परीक्षण' कहा जाता है।
// address(@class='ng-scope ng-isolate-scope')//div(contains(.,'Testing')
हमें पता चला कि इसके परिणामस्वरूप कई वेब तत्व पाए जाते हैं। इसलिए इसे और अधिक अद्वितीय बनाने के लिए, हम अन्य शर्तों जैसे 'आईडी' को जोड़ सकते हैं जो अंत में हमें उस वेब तत्व की ओर इशारा करेंगे, जिसकी हम तलाश कर रहे हैं।
// address(@class='ng-scope ng-isolate-scope')//div(contains(.,Testing') and @id='msgTitle')
# 4) गुण और तालिका XPATH का उपयोग करना
मान लें कि हम एक वेब तत्व में टाइप करना चाहते हैं जिसे टेबल के अंदर रखा गया है और टेबल को एक फॉर्म एलिमेंट के अंदर रखा गया है।
निम्न में से प्रत्येक एक नेटवर्क के स्वास्थ्य की जांच करने के लिए उपयोग किए जाने वाले उपकरण हैं
हम orm myForm ’नाम के साथ DOM के अंदर सभी फॉर्म पा सकते हैं।
“//*(@name='myForm')”
अब सभी रूपों में आईडी t tbl_testdm ’के साथ तालिका खोजें।
'//*(@name='myForm')//table(@id='tbl_ testdm’)”
तालिका के भीतर एक विशिष्ट पंक्ति और स्तंभ पर जाएं।
'//*(@name='myForm')//table(@id='tbl_ testdm’)/tbody/tr/td(6)/”
सेल के भीतर, यदि कई इनपुट हैं, तो एक इनपुट ढूंढें जहां मान = FS ओपन आरएफएस ’, और यह हमें क्षेत्र का अंतिम XPath प्रदान करेगा।
//*(@name='myForm')//table(@id='tbl_ testdm’)/tbody/tr/td(6)/ input(@value='Open RFS')'
# 5) गुण, तालिकाओं और पाठ का उपयोग करना
मान लें कि आपका इच्छित वेब तत्व पैनल तालिका में निहित है और इसमें कुछ सामान्य पाठ हैं।
सबसे पहले एक ऐसे पैनल की शुरुआत करें जिसमें एक विशिष्ट विशेषता है जो इस मामले में 'TITLE' है।
//*(@title=’Songs Lis Applet')
अब सभी टेबल टैग के माध्यम से नेविगेट करें।
//*(@title=’Songs Lis Applet')//table
सभी तालिकाओं के भीतर वह स्तंभ है जिसमें पाठ 'लेखक' है।
अंतिम XPath इस तरह होगा:
//*(@title=’Songs List Applet')//table//td(contains(text(),'Author'))
# 6) नेस्टेड एट्रीब्यूट का उपयोग करके XPATH उत्पन्न करना
नेस्टेड विशेषताओं का उपयोग करके लक्ष्य वेब तत्व का XPath भी उत्पन्न किया जा सकता है। उदाहरण के लिए, इस स्थिति में, यह DOM पर एक विशिष्ट विशेषता की तलाश करेगा और फिर इसके भीतर किसी अन्य विशेषता की तलाश करेगा।
//*(@id='parameters')//*(@id='testUpdateTime')')
# 7) एक्सपीथ जेनरेशन, डिवाइसेस और बटन को मिलाकर XPath जनरेशन
उदाहरण के लिए, XPath के नीचे, मैं एक आईडी (रिश्तेदार XPath), कुछ div टैग और एक बटन का उपयोग करके लक्ष्य वेब तत्व को खोजने में सक्षम था।
“//*(@id='MODEL/PLAN')/div(1)/div(2)/div(1)/div(1)/widget/section/div(1)/div/div(1)/div/div/button(1)'
# 8) XPATH CONTAINS, REVERSE LOOKUP, आदि का उपयोग कर उत्पन्न करना।
एक बार मैंने बिना किसी प्रत्यक्ष पहचान के ड्रॉप-डाउन कर दिया था। मुझे नीचे दिखाए गए अनुसार अंतिम XPATH के साथ आने के लिए CONTAINS, REVERSE, DIVs, विशेषताओं का उपयोग करना था।
//*(contains(text(),'Watch Dial))/../div/select(@data-ng-model='context.questions (subqts.subHandleSubId)')'),
# 9) XPath जेनरेशन रिलेटिव, CONTAINS, REVERSE, FOLLOWING SIBLING, आदि का उपयोग करके।
मेरे पास एक ऐसी स्थिति थी जहां आवेदन एक ग्राफ प्रदर्शित करता है, और प्रत्येक ग्राफ मूल्य को मान्य करना पड़ता था। लेकिन, दुर्भाग्य से, प्रत्येक मूल्य की कोई विशिष्ट पहचान नहीं होती है, इसलिए मैं अंतिम XPATH के साथ आया हूं, जैसा कि एक ग्राफ मूल्य के लिए नीचे दिखाया गया है जो सापेक्ष, समाहित, रिवर्स, निम्नलिखित-भाई और div टैग को जोड़ता है।
//*(@id='RESEARCH/PLAN')//*(contains(@id, 'A4'))/../../following-sibling::div(1)/div(1)/span(1)/span(1)
# 10) एक्सपीथ जेनरेशन एट्रिब्यूट्स, कॉन्टेक्ट्स, रिवर्स, प्रीवेडिंग-सिबलिंग, डिव, और स्पैन का उपयोग कर
एक बार मुझे अलग-अलग अलार्म डेटा को मान्य करना था और प्रत्येक अलार्म मूल्य एक विशिष्ट गणना या समय के आधार पर प्रदर्शित किया गया है। प्रत्येक मूल्य पर कब्जा करने के लिए, मुझे नीचे XPATH के साथ आना पड़ा, जिसमें विशेषताओं, शामिल, रिवर्स, पूर्ववर्ती-सिबलिंग, डिव, और स्पैन टैग का उपयोग होता है।
//*(@id='ALARMDATA')//*(contains(@id, 'AFC2'))/../../preceding-sibling::div(1)/div(1)/span(1)/span(1)
# 11) गुण, XML टैग आदि का उपयोग करना
XPATH, विशेषताएँ और XML टैग के नीचे, एक अनुक्रम का उपयोग वेब तत्व के अंतिम अद्वितीय पते के साथ किया जाता है।
//*(@id='RESEARCH/REVIEW') //widget/section/div(1)/div/div(2)/div(1)/div(3)/div(1)//span(@class='details')
# 12) एक्सपीर जेनरेशन में नहीं बल्कि एक्सपे्रस पेज को देखते हुए और कॉन्टेक्ट्स को देखते हुए
नीचे XPath एक पूरे पृष्ठ में केवल लिंक की तलाश करेगा जिसमें पाठ 'पैरामीटर डेटा मैनुअल एंट्री' के रूप में हो।
//a(contains(.,'Parameter Data Manual Entry'))
# 13) युक्तियों और विशेषताओं का उपयोग करना
//*(contains(@style,'display: block; top:'))//input(@name='daterangepicker_end')
# 14) गुण का उपयोग करना, भाई-बहन और वंशज का अनुसरण करना
//*(@id='dropdown-filter-serviceTools')/following-sibling::ul/descendant::a(text()='Notepad')
# 15) भाई-बहन, वंशज और पाठ के बाद गुण का उपयोग करना
//*(@id='dropdown-filter-service tools') /following-sibling::ul/descendant::a(text()='Trigger Dashboard')
# 16) हैडर और टेक्स्ट का उपयोग करना
यदि वेब तत्व कुछ विशिष्ट पाठ के साथ हैडर है, तो XPath को नीचे दिखाया जा सकता है:
//h3(text()='Internal Debrief')
# 17) हैडर पाठ, भाई बहन, पथ, आदि का उपयोग करना।
//h3(contains(text(),'Helium Level'))/following-sibling::div/label/input
# 18) गुण, युक्तियों और पूर्ववर्ती भाई-बहनों का उपयोग करना
एक बार जब मैं एक अवधि में था, जिसमें कोई अनोखी विशेषता नहीं थी, तो मैंने पूर्ण, कॉन्टेंस, पूर्ववर्ती भाई-बहनों और एक अन्य निरपेक्ष मार्ग को मिलाकर XPATH बनाया था।
//div(div(p(contains(text(),'Status'))))/preceding-sibling::div/div/span(3)/span
# 19) आईडी एट्रीब्यूट, कुछ विशिष्ट टेक्स्ट और रिवर्स लुकअप का उपयोग करके ड्रॉप-डाउन की तलाश करना
//*(@id='COUPLING')//*(contains(text(),'COUPLE Trend'))/../div/select
# 20) 'आईडी' को जोड़ना और विशिष्ट पाठ के साथ लिंक की तलाश करना
//*(@id='ffaHeaderDropdown')//a(contains(text(),'Start Workflow'))
निष्कर्ष
जब एक हत्यारा XPATH लिखने की बात आती है, तो यह वास्तव में इस बात पर निर्भर करता है कि आप कोड को कितनी अच्छी तरह समझते हैं और उसका विश्लेषण करते हैं। जितना अधिक आप कोड को समझेंगे, उतने अधिक तरीके होंगे जो आपको प्रभावी XPATH लिखने में मिलेंगे।
XPath लिखने में पहला कदम अपने लक्ष्य वेब तत्व के लिए निकटतम अद्वितीय वेब तत्व को ढूंढना है और ऊपर बताई गई विभिन्न तकनीकों जैसे विशेषताओं, DIVs, निम्नलिखित, समाहित, आदि का उपयोग करते हुए पास रहना है।
अंत में, हम इसे फिर से कहेंगे कि यह वास्तव में आपके जीवन को आसान बना देगा यदि आप अपनी विकास टीम से उन सभी वेब तत्वों में अद्वितीय आईडी जोड़ने का अनुरोध करते हैं जिनमें आप रुचि रखते हैं।
जब भी कोई स्प्रिंट चक्र या नई आवश्यकता पर काम शुरू होता है और टीम को नए मॉकअप के साथ साझा किया जाता है, तो मैं हमेशा सभी मॉक अप के माध्यम से जाता हूं और मेरे दिमाग में संभावित स्वचालन परीक्षण मामलों के बारे में सोचता हूं, सभी संभावित वेब तत्वों की एक सूची तैयार करता हूं जिनका उपयोग किया जाएगा स्वचालन परीक्षणों में और अपना स्वयं का आईडी तैयार करना।
एक बार मेरी सुझाई गई आईडी के साथ सभी वेब तत्वों की सूची पूरी हो जाने के बाद, मैं इसे विकास कोड में उपयोग करने के लिए पहले से ही डेवलपर को साझा करूंगा। इस तरह, मैं अपने XPATH लेखन लड़ाई को आसान बनाकर हमेशा अद्वितीय आईडी प्राप्त करूंगा।
नीचे XPATHs लिखने के विभिन्न तरीकों की एक संयुक्त सूची है:
- '// * (@ id = 'rcTEST') // * ((पाठ (), Interactive टेस्ट इंटरएक्टिव ')) /../ बटन (2)'
- '// * (@ id = 'rcTEST') // * ((पाठ (), Interactive टेस्ट इंटरएक्टिव ')) /..//* ((पाठ (),’ सेटिंग ') शामिल हैं')
- '// * (@ id = 'rcTEST') // * ((पाठ (), Interactive टेस्ट इंटरएक्टिव ')) / निम्नलिखित-भाई :: बटन'
- 'स्ट्रिंग वास्तविकफाइलनेम = वेबड्राइवर एसेटगेटड्राइवर ()। खोज (बाय.xpath (' // * '+ fileName +' / tr / td (1) '))। गेटवेट (' शीर्षक ');'
- WebDriverAccess.getDriver ()। FindElement (By.xpath ('// *' + fileName + '/ tr / td (4)'))। Click ();
- '// पता (@ वर्ग = 'एनजी-स्कोप एनजी-आइसोलेट-स्कोप') // div (समाहित है। (, परीक्षण) 'और @ आईडी =' msgTitle ')'
- '// * (@ नाम = 'myForm') // टेबल (@ id = 'tbl_ testdm') / tbody / tr / td (6) /
- इनपुट (@ मूल्य = 'ओपन आरएफएस') '
- '// * (@ शीर्षक = 'गीत सूची एप्लेट') // तालिका // td (इसमें (पाठ (), 'लेखक')))
- '// * (@ id = 'पैरामीटर') // * (@ id = 'testUpdateTime')))')
- '// * (@ id = 'MODEL / PLAN') / div (1) / div (२) / div (१) / div (१) / विजेट / अनुभाग / div (१) / div / div (१) / div / div / बटन (1) '
- '// * ((पाठ (), 'वॉच डायल)) /../ div / का चयन करें (@ डेटा-एनजी-मॉडल =' संदर्भ।संकट (subqts.subHandleSubId)') '),'
- '// * (@ id = 'RESEARCH / PLAN') // * (((@id, 'A4')) /../../ निम्नलिखित-भाई :: div (1) / div (1) / स्पैन (1) / स्पैन (१)
- '// * (@ id = 'ALARMDATA') // * ((@id, 'AFC2')) /../../ पूर्ववर्ती-सहोदर :: div (1) / div (1) / अवधि ( 1) / अवधि (1) '
- '// * (@ id = 'RESEARCH / REVIEW') // विजेट / अनुभाग / div (1) / div / div (2) / div (1) / div (3) / div (1) // span @ वर्ग = 'विवरण')
- '“ ए.कॉन्कनेक्ट्स(.'Parameter डेटा मैनुअल एंट्री ')) '
- '// * ((@ शैली, प्रदर्शन: ब्लॉक; शीर्ष: ')) // इनपुट (@ नाम =' daterangepicker_end ')'
- '// * (@ आईडी = 'ड्रॉपडाउन-फिल्टर-सर्विसटूल') / निम्नलिखित-भाई :: उल / वंशज :: एक (पाठ () = 'नोटपैड')'
- '// * (@ id = 'dropdown-filter-serviceTools') / निम्नलिखित-भाई :: उल / वंशज :: एक (पाठ () = 'ट्रिगर डैशबोर्ड')'
- '// h3 (पाठ () = 'आंतरिक ऋण')'
- '// h3 ((पाठ (), 'हीलियम स्तर')) / निम्नलिखित-भाई :: div / लेबल / इनपुट'
- '// div (div (p (समाहित होता है (पाठ (), 'स्थिति')))) / पूर्ववर्ती- भाई-बहन :: div / div / काल (3) / अवधि'
- '// * (@ id = 'COUPLING') // * ((पाठ (), 'COUPLE ट्रेंड')) /../ div / select'
- '// * (@ id = 'ffaHeaderDropdown') // एक ((पाठ (), 'वर्कफ़्लो शुरू करें)))'
आशा है कि इस जानकारीपूर्ण लेख ने XPaths लिखने पर आपके ज्ञान को समृद्ध किया होगा।
लेखक जैव: यह लेख अदनान आरिफ़ द्वारा लिखा गया है जो एक आईटी पेशेवर है जो अपने करियर में 9 वर्षों में विविध अनुभव और कौशल रखता है।
अनुशंसित पाठ
- शुरुआती के लिए गहराई से ग्रहण ट्यूटोरियल
- उदाहरणों के साथ पायथन डेटटाइम ट्यूटोरियल
- यूनिक्स कैट कमांड सिंटैक्स, उदाहरण के साथ विकल्प
- सिंटेक्स, विकल्प और उदाहरण के साथ यूनिक्स सॉर्ट कमांड
- उदाहरणों के साथ यूनिक्स शैल स्क्रिप्टिंग ट्यूटोरियल
- सेलेनियम उदाहरणों के साथ पाठ ट्यूटोरियल द्वारा तत्व का पता लगाएं
- हाथों पर उदाहरण के साथ अजगर मुख्य समारोह ट्यूटोरियल
- JMeter में एक्सपैथ एक्सट्रैक्टर पोस्ट-प्रोसेसर