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

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

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

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

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

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

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

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

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

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

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

ChromeDriver, ट्रांसफ़र होने वाले एलिमेंट पर क्लिक नहीं कर सकता

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