क्लिक से जुड़ी समस्याएं

'एलिमेंट क्लिक नहीं किया जा सकता' गड़बड़ी

ChromeDriver क्लिक करने की सुविधा, एलिमेंट के पहले क्लाइंट रेक्टैंगल के बीच में माउस क्लिक की तरह काम करती है. अगर क्लाइंट रेक्टैंगल नहीं है, तो उसे बाउंडिंग करने से काम होता है. ChromeDriver कहां क्लिक कर रहा है, इसका पता लगाने का सबसे आसान तरीका है: chrome devtools को खोलें और क्लिक ऑपरेशन को कॉल करने से ठीक पहले उस एलिमेंट की जांच करें जिसे क्लिक करना है. इंस्पेक्टर में एलिमेंट चुनें और नीले बॉक्स पर ध्यान दें. ये एलिमेंट के क्लाइंट रेक्टैंगल हैं, जैसा कि नीचे दिखाया गया है. ChromeDriver पहले वाले के बीच में क्लिक करने की कोशिश करेगा.

अगर ChromeDriver 'एलिमेंट पर क्लिक नहीं किया जा सकता' गड़बड़ी दिखाता है, तो इसकी बहुत संभावना है कि उपयोगकर्ता उस जगह पर क्लिक नहीं कर सकता. इसकी जांच करने के लिए, अपने कर्सर को पहले क्लाइंट रेक्टैंगल के बीच में रखें और देखें कि उस जगह पर क्लिक किया जा सकता है या नहीं.

ऊपर दिए गए मामले में, टेस्ट, ऐंकर एलिमेंट पर क्लिक करने की कोशिश कर रहा था. इस मामले में ऐंकर पर क्लिक नहीं किया जा सकता. सिर्फ़ चाइल्ड इमेज पर क्लिक किया जा सकता है. इमेज एलिमेंट पर margin-bottom स्टाइल की वजह से, ऐंकर एलिमेंट का बीच वाला हिस्सा, क्लिक की जा सकने वाली इमेज की सीमाओं से बाहर हो जाता है. इस तरह, ChromeDriver गड़बड़ी बता सकता है. पोज़िशनिंग/साइज़ तय करने के तरीके के बारे में ज़्यादा जानने के लिए, w3 स्पेसिफ़िकेशन देखें. ऊपर दिए गए मामले को ठीक करने के लिए, ऐंकर के बजाय इमेज पर क्लिक करें.

'एलिमेंट पर क्लिक नहीं किया जा सकता' गड़बड़ी अक्सर इन स्थितियों में होती है, जब टेस्ट:

  • उस ऐंकर पर क्लिक करें जिसके क्लिक किए जा सकने वाले डिसेंडेंट एलिमेंट, ऐंकर सीमाओं के अंदर न हों (जैसा कि ऊपर बताया गया है)
  • किसी एलिमेंट के नीचे या कुछ हद तक नीचे मौजूद, उस एलिमेंट पर क्लिक करना
  • जब कोई फ़िक्स ओवरले मौजूद हो, तो एलिमेंट के ऑफ़स्क्रीन पर क्लिक करें. इससे एलिमेंट को व्यू के लिए स्क्रोल किया जाएगा, लेकिन हो सकता है कि इसे तय किए गए ओवरले के नीचे स्क्रोल किया जा सके
  • उस एलिमेंट पर क्लिक करें जिस पर बीच में क्लिक नहीं किया जा सकता. उदाहरण के लिए, कुछ तरह के कन्वक्स SVG एलिमेंट

ये समस्याएं अक्सर, दिए गए एलिमेंट के किसी चाइल्ड पर क्लिक करके, प्रोग्राम के हिसाब से ब्लॉक करने वाले एलिमेंट को हटाकर या छिपाकर, एलिमेंट के सबसे ऊपर बाईं ओर से ऑफ़सेट पर क्लिक करने के लिए ऐडवांस इंटरैक्शन एपीआई का इस्तेमाल करके या JavaScript में माउस क्लिक इवेंट को सिम्युलेट करके हल की जा सकती हैं.

'एलिमेंट क्लिक नहीं किया जा सकता' गड़बड़ी

ऐसा अक्सर इसलिए होता है, क्योंकि ChromeDriver की जगह की जानकारी तय करने के कुछ समय बाद एलिमेंट की जगह बदल जाती है. हालांकि, इससे पहले कि ChromeDriver उस जगह पर कोई क्लिक जारी करता है.

यह पता लगाने के लिए कि क्या यह आपकी समस्या है, क्लिक से अपवाद को पकड़ें और तुरंत एलिमेंट के मौजूदा जगह और साइज़ को लॉग करें. उस जगह की तुलना करें जहाँ ChromeDriver ने उस जगह की रिपोर्ट की है जहां उस जगह ने क्लिक करने की कोशिश की थी. इसके बाद, देखें कि वे दोनों अलग हैं या नहीं. अगर ऐसा है, तो आपको एलिमेंट का मूव करना बंद होने तक इंतज़ार करना होगा या दोबारा क्लिक करके देखना होगा. अगर नहीं, तो किसी छोटे टेस्ट पेज से गड़बड़ी की शिकायत करें. इसका इस्तेमाल आपकी समस्या को फिर से सामने लाने के लिए किया जा सकता है (भले ही, इससे कभी-कभी समस्या ट्रिगर होती हो).

ChromeDriver किसी मूविंग एलिमेंट पर क्लिक नहीं कर पा रहा है

यह ChromeDriver की सुविधा के साथ काम नहीं करती. अगर एलिमेंट दिखना बंद हो जाता है, तो उसके होने का इंतज़ार करें. अगर एलिमेंट का मूवमेंट कभी रुकता नहीं है, तो ChromeDriver इस बात की गारंटी नहीं देता कि क्लिक पूरा होगा.