WordPress का इन-बिल्ट एडमिन-ईमेल वेरिफिकेशन स्क्रीन—जो वर्ज़न 5.3 के बाद से हर कुछ महीनों में दिखाई देता है—उन साइटों पर Playwright ऑटोमेशन को बाधित करता है जहाँ SSH एक्सेस नहीं है और प्लगइन्स को अपडेट करना होता है। यह अतिरिक्त स्टेप स्क्रिप्ट्स को ऐसे बटन का इंतज़ार करने के लिए मजबूर करता है जो कभी दिखाई ही नहीं देता, जिससे टाइमआउट और डिप्लॉयमेंट रुक जाते हैं।

रुकावट का कारण क्या है

जब एक Playwright स्क्रिप्ट wp-admin में लॉग इन करती है, तो वह उम्मीद करती है कि डैशबोर्ड तुरंत लोड हो जाए। इसके बजाय, WordPress कभी-कभी ऐसे पेज पर रीडायरेक्ट कर देता है जिसके URL में adminhash= होता है। पेज पूछता है, “Is this still your address?” जिसमें दो बटन होते हैं: Yes, this is my address और I’ll wait। एक इंसान “I’ll wait” पर क्लिक करता है और बाद में आगे बढ़ता है; लेकिन एक बिना निगरानी वाली (unattended) स्क्रिप्ट डैशबोर्ड के एलिमेंट्स को ढूंढती रहती है, उन्हें कभी नहीं पाती, और अंततः टाइमआउट हो जाती है।

यह प्रॉम्प्ट क्यों आता है

WordPress ने यह पुष्टि करने के लिए यह प्रॉम्प्ट जोड़ा है कि एडमिन ईमेल एड्रेस अभी भी सुलभ (reachable) है। साइट की गतिविधि चाहे जो भी हो, यह लगभग हर कुछ महीनों में दिखाई देता है, और इसका उद्देश्य उन साइट मालिकों के लिए एक सुरक्षा जांच के रूप में कार्य करना है जो शायद उस एड्रेस का एक्सेस खो चुके हों।

कौन प्रभावित होता है

  • डेवलपर्स जो प्लगइन अपडेट करने, UI टेस्ट चलाने, या बल्क एडमिन टास्क करने के लिए Playwright पर निर्भर हैं।
  • होस्टिंग प्रोवाइडर्स जो SSH को प्रतिबंधित करते हैं, जिससे उपयोगकर्ताओं को ब्राउज़र के माध्यम से ऑटोमेशन करने के लिए मजबूर होना पड़ता है।
  • साइट मालिक जिन्हें अपडेट में देरी का सामना करना पड़ता है क्योंकि ऑटोमेशन कभी अपडेट स्क्रीन तक पहुँच ही नहीं पाता।

इसकी कीमत केवल कुछ सेकंड की बर्बादी नहीं है; बार-बार होने वाली विफलताओं से निर्धारित मेंटेनेंस विंडो रुक सकती है और मैन्युअल हस्तक्षेप (manual intervention) की आवश्यकता पड़ सकती है।

अनचाहे स्क्रीन का पता लगाना

वर्तमान URL में adminhash= की उपस्थिति एक विश्वसनीय संकेतक है। यह स्ट्रिंग केवल ईमेल-वेरिफिकेशन पेज पर दिखाई देती है, नियमित डैशबोर्ड या किसी अन्य एडमिन स्क्रीन पर नहीं।

एक सरल बाईपास

लॉगिन स्टेप के तुरंत बाद एक चेक डालें। यदि URL में adminhash= है, तो “I’ll wait” बटन पर क्लिक करें और आगे बढ़ने से पहले पेज के स्थिर होने का इंतज़ार करें।

def ensure_past_email_check(page):
    if "adminhash=" in page.url:
        page.click("text=I'll wait")
        page.wait_for_load_state("networkidle")

हर सफल लॉगिन के तुरंत बाद ensure_past_email_check(page) को कॉल करें। जब वेरिफिकेशन स्क्रीन दिखाई नहीं देती, तो यह फंक्शन कुछ नहीं करता, जिससे स्क्रिप्ट तेज़ और नियत (deterministic) बनी रहती है।

बाईपास का उपयोग कब करें

उन ऑटोमेटेड वर्कफ़्लो के लिए जिन्हें बिना मानवीय देखरेख के चलना चाहिए—जैसे कि नाइटली प्लगइन अपडेट या continuous-integration UI टेस्ट—यह बाईपास व्यावहारिक है। यह वेरिफिकेशन स्टेप को किसी रैंडम विफलता के बजाय एक अनुमानित मोड़ (predictable detour) के रूप में देखता है।

विपरीत तर्क

कुछ एडमिनिस्ट्रेटर्स का तर्क है कि प्रॉम्प्ट को स्वचालित रूप से खारिज करने से वास्तविक ईमेल-डिलीवरी समस्या छिप सकती है। यदि एडमिन ईमेल वास्तव में अप्राप्य हो जाता है, तो साइट महत्वपूर्ण सूचनाएं मिस कर सकती है। ऐसे मामलों में, एक अधिक सूक्ष्म दृष्टिकोण—जैसे इवेंट को लॉग करना, अलर्ट भेजना, या ऑटोमेशन को रोकना—बेहतर हो सकता है।

आगे किन बातों का ध्यान रखें

  • WordPress URL पैटर्न बदल सकता है या अतिरिक्त वेरिफिकेशन स्टेप्स जोड़ सकता है, जिससे adminhash= चेक टूट सकता है। कोर रिलीज़ नोट्स पर नज़र रखें।
  • Playwright का सिलेक्टर इंजन विकसित होता रहता है; सुनिश्चित करें कि किसी भी UI रीडिज़ाइन के बाद टेक्स्ट सिलेक्टर "text=I'll wait" बटन से मेल खाता रहे।
  • यदि आप कई साइटों का प्रबंधन करते हैं, तो डुप्लिकेट कोड से बचने के लिए बाईपास लॉजिक को एक साझा लाइब्रेरी में केंद्रीकृत करने पर विचार करें।

एडमिन-ईमेल कन्फर्मेशन पेज को स्पष्ट रूप से हैंडल करके, डेवलपर्स कभी-कभार होने वाले टाइमआउट को अपने Playwright स्क्रिप्ट के एक नियमित हिस्से में बदल देते हैं, जिससे WordPress ऑटोमेशन विश्वसनीय बना रहता है, भले ही प्लेटफॉर्म कोई अप्रत्याशित सुरक्षा प्रॉम्प्ट दे दे।

Source: https://dev.to/susumun/browser-based-updates-getting-stuck-on-the-confirm-your-admin-email-screen-why-playwright-6io