"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Playwright .NET में HTML की तुलना करें

Playwright .NET में HTML की तुलना करें

2024-11-01 को प्रकाशित
ब्राउज़ करें:567

Compare HTML in Playwright .NET

फोटो मिगुएल Á द्वारा। Pexels से Padriñán

यदि आप जिस भाषा और ढांचे का उपयोग कर रहे हैं, उसके साथ सहज नहीं हैं तो टेक्स्ट (और उसके HTML) की स्वचालित जांच करना एक चुनौती हो सकती है। सीखने और अन्वेषण के लिए सीमित समय रखना अपनी ही चुनौती है। हमारे प्रोजेक्ट के लिए धूम्रपान परीक्षण को स्वचालित करने के लिए मेरा एक कार्य प्रत्येक वातावरण में पाठ को सत्यापित करना था, प्रत्येक विशिष्ट सेट-अप का अपना स्वागत संदेश होता था। और, मैं मानता हूँ, मैं बिल्कुल निश्चित नहीं था कि कहाँ से शुरू करूँ। मुझे पता था कि मुझे क्या चाहिए, और यह भी पता चल गया कि इसे कहाँ से लाना है। लेकिन सभी भागों को एक साथ लाना उतना आसान नहीं था जितना दिखता था।

मैंने डेटाबेस एक्सेस प्राप्त करने की आवश्यकता के साथ शुरुआत की। और फिर यह सुनिश्चित करने के लिए हमारे सेटअप के साथ काम करें कि मैं रन के दौरान डेटाबेस से जुड़ने के लिए एप्लिकेशन सेटिंग्स का उपयोग कर सकता हूं (जो फ्रेमवर्क को बताता है कि जानकारी कहां ढूंढनी है और जानकारी को निजी रखने के लिए कॉन्फ़िगरेशन सेटिंग्स के साथ काम करता है)। फिर मैं टुकड़ों को एक साथ रख सकता हूं, और डेटाबेस से जानकारी प्राप्त कर सकता हूं, और परीक्षण के लिए प्रदर्शित जानकारी के साथ इसकी तुलना कर सकता हूं।

मैन्युअल रूप से, यह सरल था - मुझे अनुमान लगाना चाहिए था कि इसका मतलब है कि यह उतना आसान नहीं होगा जितना मैंने आशा की थी। HTML को देखना और यह सत्यापित करना कि चीजें उचित लेआउट में हैं, आसान था। मैं सरल HTML लेआउट को पर्याप्त रूप से समझता हूं, यह सुनिश्चित करने के लिए एक त्वरित जांच थी कि शब्द सही थे और आगे बढ़ें। मैंने किसी कारण से मैन्युअल सत्यापन के लिए कई बार रुककर यह धूम्रपान परीक्षण किया था। इसके और जिन चीज़ों की मुझे जाँच करने की ज़रूरत थी उनकी सूची के बीच, मुझे इस स्वचालन को सफल बनाने और इसे अन्य परीक्षणों में लागू करने के लिए सीखने, अन्वेषण करने और मदद माँगने के लिए प्रोत्साहित किया जाना था।

एक बार डेटाबेस एक्सेस (और उचित कनेक्शन स्ट्रिंग!) बन जाने के बाद, मैं पृष्ठों के टेक्स्ट को एक वेरिएबल के रूप में सेट करने में सक्षम था। यह आसान हिस्सा था: मुझे पता था कि मैं यहां क्या कर रहा हूं और इसे पूरा करने में मुझे निपुणता महसूस हुई। मैंने नाटककार परीक्षण चलाया, इस उम्मीद के साथ कि पृष्ठ पर पाठ शब्द-वार मेल खाएगा, लेकिन HTML घटकों से नहीं। और मैं सही था - उचित शब्द वहां थे, लेकिन HTML जोड़े जाने के कारण परीक्षण विफल हो गया।

अनुसंधान का समय! पहला प्रयास Page.ContentAsync() का उपयोग करने का था, जो हेडर सहित पेज का पूरा HTML प्राप्त करने का आदेश है। इससे मुझे इसे खोजने और पाठ की उप-स्ट्रिंग ढूंढने की अनुमति मिलनी चाहिए, सही है? पहले विचार के रूप में, यह बहुत डरावना नहीं था - मेरे पास वह HTML सहेजा हुआ था जिसे मैं ढूंढ रहा था, और मुझे इसे ढूंढने के लिए संपूर्ण दस्तावेज़ सामग्री पर चलना था। कुशल नहीं, और निश्चित रूप से अच्छा अभ्यास नहीं! इससे मुझे वह परिणाम मिलना चाहिए जिसकी मुझे आवश्यकता थी और फिर इसे दोहराया जा सकता है।

मैंने नहीं किया। पूरे पृष्ठ में एक उप-स्ट्रिंग ढूंढना तुरंत संभव नहीं था, और मैं चाहता था कि मेरा स्वचालन तेज़ हो। जैसा मैं चाहता था वैसा काम करने के कुछ दर्जन प्रयासों के बाद और व्यवसाय के नियम को ध्यान में रखते हुए (यदि आप इसे 45 मिनट के प्रयास में हल नहीं कर सकते, तो किसी और से पूछने का समय है), मैंने एक बैठक की डेवलपर्स में से एक। मुझे पता है कि वे व्यस्त हैं और एक बहुत ही आवश्यक अद्यतन तैयार कर रहे हैं: बैठक "यदि आवश्यक हो तो हम पुनर्निर्धारित कर सकते हैं" नोट संलग्न के साथ समाप्त हुई।

बैठक की प्रतीक्षा करते समय, मैंने इसके साथ उपद्रव करना जारी रखा: क्षेत्र को कम करने में चुनौतियों में से एक div का वर्ग था - इसका नाम अच्छी तरह से नहीं रखा गया था, और बूटस्ट्रैप के साथ, डुप्लिकेट divs की संभावना थी अन्य पेजों पर भी इसी नाम के कारण मुझे परेशानी हो रही थी। किसी ऐसे व्यक्ति से बात करने पर जो मुझसे कहीं अधिक समय से यहां था, मुझे पता चला कि यह हमेशा पेज पर तीसरा डिव था।

अब मेरे पास इसे ढूंढने की एक नई योजना थी - Nth() लोकेटर का उपयोग करें, और सही div ढूंढें। मुझे इसे हल करना अच्छा लगेगा, जो पोस्ट मैं अभी टाइप कर रहा हूं उसे लिखूंगा, और बैठक से पहले अगले मुद्दे पर जाऊंगा। जैसा कि आप में से बहुत से लोग जानते होंगे और/या संदेह करते होंगे, यह किसी अत्यावश्यक घटना के सामने आने के लिए एक अच्छा ट्रिगर है, और ऐसा हुआ भी। योजनाएँ कई दिनों तक आयोजक में एक पृष्ठ से दूसरे पृष्ठ पर कॉपी होती रहीं, जब तक कि हमारे लिए जोड़ी विकसित करने का समय नहीं आ गया।

इस डेवलपर के साथ काम करना हमेशा सुखद होता है: हमारे बीच बहुत कुछ समान है और हम एक-दूसरे का सम्मान करते हैं। बोनस के रूप में, वे पढ़ाने में अच्छे हैं! लक्ष्य क्या था इसकी त्वरित समीक्षा के बाद, हमने इसे हल करने के लिए मेरे द्वारा किए गए प्रयासों पर विचार किया। मैंने आईडीई में त्रुटियों के साथ आखिरी वाला छोड़ दिया था, इस उम्मीद में कि यह मददगार होगा। और अब प्रगति करनी है!

डीबगर का उपयोग करके, हमने सत्यापित किया कि HTML को सही तरीके से खींचा जा रहा था। यह एक ऐसा क्षेत्र था जिसकी मैंने पूरी तरह से जाँच नहीं की थी - और शुक्र है कि यह सही था। हम सहमत थे कि div नाम बहुत उपयोगी नहीं था - उन्होंने हाल ही में जो काम किया था, उसने इसी नाम से अन्य div बनाया था, लेकिन एक अलग पृष्ठ पर। इसे नोट कर लिया गया था, लेकिन जब तक मैं परीक्षण में उस बिंदु तक नहीं पहुंच गया, तब तक इसे पेश किया गया।

एनयूनिट में उनके पास मौजूद कौशल की आवश्यकता थी - इस अनुभाग को सत्यापित करने का आसान तरीका AreEqual कमांड का उपयोग करना था। इससे परीक्षण को यह जांचने की अनुमति मिली कि तार बराबर थे। नाटककार जिद्दी हो रहा था. यह स्ट्रिंग के बजाय लोकेटर चाहता था - या दूसरे तरीके से - जिसे तैयार करने में बहुत अधिक समय लग रहा था। और मुझे यह तकनीक सीखकर ख़ुशी हुई - मैं देख सकता हूँ कि यह भविष्य में उपयोगी होगी!

Nth() को काम पर लाने के कुछ प्रयासों के बाद, हमने उस अजीब डिव क्लास का उपयोग किया - यह सुनिश्चित करने के बाद कि इसका उपयोग पृष्ठ पर केवल एक बार किया गया था। इससे हमें एक शुरुआती बिंदु मिला - अब यह पता लगाना है कि HTML को वहां कैसे लाया जाए (शुक्र है, यह उस विशिष्ट div में एकमात्र चीज़ थी)। कुछ और गलत शुरुआत, और अंततः मैंने इस विचार को छोड़ दिया कि उस div के लिए contentAsync() काम नहीं करेगा, उन्हें उस समाधान की ओर ले गया जिसे मैंने आज़माया था और त्याग दिया था।

InnerHtmlAsync() ने हमें div की सटीक सामग्री दी! रिक्त स्थान और सभी. और वह अगली बाधा थी - और हमारे पास बैठक के लिए समय नहीं था। शुक्र है, वे मुझे कुछ और मिनट देने को तैयार थे, क्योंकि यह एक ऐसा मुद्दा था जिसे वे पहले ही सुलझा चुके थे। रिक्त स्थान को हटाने के लिए बस सिंटैक्स की आवश्यकता है: यदि आप उत्सुक हैं तो Replace(" ", "")। और उसने परीक्षण को तब तक चलने दिया, जब तक कि मैंने मैन्युअल सत्यापन के लिए जो अगला PauseAsync() नहीं जोड़ा, उसने इसे एक पल के लिए रोक दिया।

वे दोपहर के भोजन के लिए चले गए, और मैंने अगले समय का समय नोट्स तैयार करने में बिताया। मेरे पास खोजने के लिए अन्य चीजें थीं - और अब इस बारे में और अधिक सुराग मिल गया है कि इसके बारे में कैसे जाना जाए।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/arleneandrews/compare-html-in-playwright-net-4jfh यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3