अंदाज़ा लगाओ? माइक्रोसॉफ्ट ने घड़ी की कल की तरहनाटककार का एक नया संस्करण जारी किया! बग फिक्स और एपीआई परिवर्तनों के साथ बने रहना एक पूर्णकालिक कार्य की तरह महसूस हो सकता है, और अच्छी सुविधाओं को खोना एक छोटी सी बात है। लेकिन चिंता न करें; हमें आपकी सहायता मिल गई है!
नवीनतम नाटककार अपडेट के माध्यम से यात्रा पर हमारे साथ जुड़ें। हम यहां आपकी जानकारी में बने रहने, कुछ नई तरकीबें अपनाने और अपने शानदार कौशल से अपने सहकर्मियों को आश्चर्यचकित करने में मदद करने के लिए हैं! गोता लगाने के लिए तैयार हैं? चल दर!
यदि आप कुछ अद्भुत उदाहरणों के माध्यम से नवीनतम नाटककार अपडेट को प्रत्यक्ष रूप से देखने के लिए उत्सुक हैं, तो नाटककार यूट्यूब चैनल पर जाएं और मासिक "नाटककार में नया क्या है" वीडियो देखें:
नाटककार में पेश की गई नवीनतम सुविधाओं का पता लगाने और यह देखने का समय आ गया है कि उनसे अधिकतम लाभ कैसे उठाया जाए 🔍
FirefoxUserPrefs
फ़ील्ड को browserType.launchPersistentContext(userDataDir, options)
के options
ऑब्जेक्ट तर्क में जोड़ा गया। वह विधि userDataDir
पर स्थित लगातार स्टोरेज का उपयोग करके एक ब्राउज़र लॉन्च करती है और ब्राउज़र संदर्भ उदाहरण लौटाती है। firefoxUserPrefs
`एक ऑब्जेक्ट है जिसमें फ़ायरफ़ॉक्स उपयोगकर्ता प्राथमिकताएँ शामिल हैं जैसा कि about:config
में निर्दिष्ट है।reason
फ़ील्ड को page.close(options)
, browserContext.close(options)
, और browser.close(options)
विधियों के options
ऑब्जेक्ट तर्क में जोड़ा गया है। reason
एक स्ट्रिंग है जिसमें close()
कॉल के परिणामस्वरूप बाधित सभी ऑपरेशनों द्वारा रिपोर्ट किया गया त्रुटि संदेश होता है।
जबकि firefoxUserPrefs
विशेष रूप से कस्टम कॉन्फ़िगरेशन की आवश्यकता वाले फ़ायरफ़ॉक्स उपयोगकर्ताओं को पूरा करता है, reason
फ़ील्ड बहुत अधिक सामान्य उद्देश्य है। इसे नीचे दिए गए स्निपेट के अनुसार उपयोग करें:
await browser.close({ reason: "Scraping process completed!" })
browser.close()
द्वारा बाधित सभी लंबित ऑपरेशन अब "स्क्रैपिंग प्रक्रिया पूरी हो गई!" संदेश के साथ एक जावास्क्रिप्ट त्रुटि फेंक देंगे।
इस सुविधा का उपयोग कैसे करें? कल्पना करें कि आपका लक्ष्य पृष्ठ एक महत्वपूर्ण कार्य के बीच में है - मान लीजिए, कुछ डेटा पुनर्प्राप्त होने की प्रतीक्षा कर रहा है। अचानक, एक अप्रत्याशित त्रुटि सामने आती है, और आपको ब्राउज़र को शालीनतापूर्वक बंद करने की आवश्यकता का सामना करना पड़ता है।
बिना reason
, आप इस बारे में अनभिज्ञ रह जाएंगे कि चल रहे कार्य के लिए संसाधन जारी किए गए हैं या नहीं और ऑपरेशन क्यों बाधित हुआ था। यह नहीं जानना कि क्या हो रहा है, बुरा है, खासकर जब आपको स्वचालित वेब स्क्रैपिंग स्क्रिप्ट के लॉग में त्रुटि के कारण का निरीक्षण करने का काम सौंपा जाता है। यहीं पर `कारण' फ़ील्ड आपकी सहायता के लिए आती है, जिससे आपको श्रमसाध्य जांच के दिन बच जाते हैं।
बहुत बढ़िया, यह एपीआई परिचय डिबगिंग को बहुत आसान बना देता है! 🚀
प्लेराइट टेस्ट जेनरेटर टूल , जिसे आपके ब्राउज़र में कार्रवाई करते समय स्वचालित रूप से परीक्षण बनाने के लिए डिज़ाइन किया गया था, अब निम्नलिखित बटन प्रदान करता है:
expect(locator).toBeVisible()
निर्देश उत्पन्न करके सत्यापित करें कि चयनित तत्व दृश्यमान है।expect(locator).toContainText()
निर्देश के माध्यम से विशिष्ट टेक्स्ट शामिल हैexpect(locator).toHaveValue()
निर्देश जोड़कर जांचें कि चयनित तत्व का एक विशेष मान है।
इसे चित्रित करें : आप एक जटिल कार्य पर काम कर रहे हैं, जैसे कि एक गतिशील वेब पेज के लिए वेब स्क्रैपर बनाना । मान लें कि आपको यह सुनिश्चित करने की ज़रूरत है कि पृष्ठ पर कुछ तत्व दृश्यमान हैं और उनमें विशिष्ट पाठ या मान शामिल हैं। इसमें कुछ जटिल तर्क शामिल होंगे 👎। लेकिन रुकिए-इस ताजा अपडेट के लिए धन्यवाद, यह सब टेस्ट जेनरेटर टूल में कुछ क्लिकों तक सीमित हो जाता है!
निम्नलिखित GIF में इस नई सुविधा को कार्यशील देखें:
वह टेस्ट जेनरेटर इंटरैक्शन आपके लिए निम्नलिखित टाइपस्क्रिप्ट परीक्षण तैयार करेगा:
import { test, expect } from '@playwright/test'; test('test', async ({ page }) => { await page.goto('https://playwright.dev/'); await expect(page.getByRole('banner')).toContainText('Get started'); });
✨ बहुत जादुई है, है ना? ✨
प्लेराइट के प्रमुख अपडेट की भव्य परंपरा में, समर्थित ब्राउज़रों की लाइनअप को नए संस्करणों के साथ अपडेट किया गया है:
लेकिन वह सब नहीं है! प्लेराइट का वर्तमान संस्करण निम्नलिखित स्थिर चैनलों के मुकाबले भी उत्कृष्ट साबित हुआ है:
गूगल क्रोम 119
माइक्रोसॉफ्ट एज 119
डाउनलोड ऑपरेशन विफल होने या रद्द होने पर download.path()
और download.createReadStream()
विधियां अब एक त्रुटि उत्पन्न करती हैं।
Playwright docker छवि अब Node.js v20 के साथ आती है।
क्या आप कोई नया अपडेट मिस नहीं करना चाहते? नाटककार रिलीज़ नोट्स पृष्ठ पर नज़र रखें!
अब, आप सोच रहे होंगे, "मैं उन शानदार नई चीज़ों को कैसे प्राप्त कर सकता हूँ?" खैर, नाटककार को नवीनतम संस्करण में अद्यतन करके, मेरे मित्र!
बस नीचे दिए गए आदेश को सक्रिय करें:
npm install @playwright/test@latest
और ब्राउज़र इंस्टेंस को इसके साथ अपग्रेड करना भूल जाएं:
npx playwright install
वोइला! आप नाटककार के नवीनतम अपडेट प्राप्त करने के लिए पूरी तरह तैयार हैं!
इससे कोई फर्क नहीं पड़ता कि प्लेराइट का आपका संस्करण कितना अद्यतित है, अधिकांश साइटें अभी भी आपकी स्वचालित स्क्रिप्ट का पता लगाने और उसे ब्लॉक करने में सक्षम होंगी। लेकिन यह कैसे संभव है? खैर, प्लेराइट जैसे पुस्तकालयों द्वारा नियंत्रित हेडलेस ब्राउज़र में विशेष कॉन्फ़िगरेशन और सेटिंग्स शामिल होती हैं जिन्हें एंटी-बॉट समाधानों द्वारा लाल झंडे के रूप में देखा जाता है। परिणाम? तत्काल अवरोध या कैप्चा और अन्य कष्टप्रद बाधाओं की अप्रिय उपस्थिति।
अब, आप सोच रहे होंगे, "क्या मैं इससे बचने के लिए अपनी ब्राउज़र सेटिंग्स में बदलाव नहीं कर सकता?"
इतनी जल्दी नहीं, बच्चे! कम से कम तीन अनिवार्य कारणों से यह एक अच्छा विचार नहीं है:
समस्या ब्राउज़र स्वचालन लाइब्रेरी के साथ नहीं है (नाटककार कमाल है! 🤘), बल्कि नियंत्रण में ब्राउज़र के साथ है। समाधान एक उच्च अनुकूलन योग्य ब्राउज़र होगा जो:
विश्वास करें या न करें, यह कोई दूर की मृगतृष्णा नहीं है। यह वास्तविक है और ब्राइट डेटा का स्क्रैपिंग ब्राउज़र समाधान बिल्कुल यही है!
नाटककार ब्राउज़र ऑटोमेशन लाइब्रेरीज़ का रॉक स्टार है, और जैसे सांता क्लॉज़ क्रिसमस की पूर्व संध्या पर उपहार देता है, वैसे ही माइक्रोसॉफ्ट हर महीने एक बड़ा नया अपडेट जारी करता है। यहां, आपने देखा है कि नवीनतम प्लेराइट अपडेट से अधिकतम लाभ कैसे उठाया जाए, लेकिन आइए इसका सामना करते हैं, वे जादुई रूप से आपको उन्नत बॉट डिटेक्शन प्रौद्योगिकियों वाली साइटों के लिए अदृश्य नहीं बनाएंगे।
ब्राइट डेटा के स्क्रैपिंग ब्राउज़र समाधान के साथ उस चुनौती से बचें और इंटरनेट को सभी के लिए, हर जगह, यहां तक कि स्वचालित स्क्रिप्ट के माध्यम से एक सार्वजनिक स्थान बनाने के हमारे मिशन में शामिल हों!
अगली बार तक, आज़ादी के साथ वेब एक्सप्लोर करते रहें!