मैं वेब अनुप्रयोगों का परीक्षण करने के लिए स्वचालित स्क्रिप्ट लिखता हूं जो AJAX पर बहुत भारी हैं। उदाहरण के लिए, सेटिंग्स को सहेजते समय "Saving...
" टेक्स्ट के साथ एक मोडल संवाद प्रदर्शित होता है, जबकि एक लाइटबॉक्स शेष पृष्ठ को बाहर करता है।सेलेनियम वेबड्राइवर - यह निर्धारित करें कि क्या तत्व क्लिक करने योग्य है (यानी डोजो मोडल लाइटबॉक्स द्वारा अस्पष्ट नहीं)
मेरी टेस्ट स्क्रिप्ट संदेश गायब होने से पहले परीक्षण में अगले लिंक पर क्लिक करने की कोशिश कर रहे हैं।
Exception in thread "main" org.openqa.selenium.WebDriverException: Element is not clickable at point (99.5, 118.5). Other element would receive the click: <div class="dijitDialogUnderlay _underlay" dojoattachpoint="node" id="lfn10Dijit_freedom_widget_common_environment_Dialog_8_underlay" style="width: 1034px; height: 1025px; "></div> (WARNING: The server did not provide any stacktrace information)
यह इसलिए होता है क्योंकि लाइटबॉक्स तत्व मैं पर क्लिक करें अस्पष्ट बना रहा है: यह लगभग हमेशा जब Firefox ड्राइविंग, लेकिन जब क्रोम ड्राइविंग निम्न त्रुटि प्रदर्शित किया जाता है काम करता है। मैं लिंक पर क्लिक करने से पहले लाइटबॉक्स गायब होने का इंतजार करना चाहता हूं।
लाइटबॉक्स के लिए अब मौजूद नहीं है, यह वैध कामकाज नहीं है क्योंकि कभी-कभी, मोडल संवाद और लाइटबॉक्स के कई स्तर होते हैं, और उनके बीच अंतर करने का कोई आसान तरीका नहीं होता है।
क्या सेलेनियम में यह पता लगाने का कोई तरीका है कि तत्व क्लिक करने योग्य है (कोई अन्य तत्व इसे अस्पष्ट नहीं करता है)? एक कोशिश/पकड़ एक कामकाज होगा, लेकिन अगर यह संभव है तो मैं उचित जांच करना पसंद करूंगा।
पिछली बार मैंने क्रोम के साथ इसे करने की कोशिश यह काम नहीं किया: "क्लिक करने योग्य" शर्त पूरी होने मैं कोशिश() पकड़() आप कोड द्वारा इसे बनाया क्लिक को अवरुद्ध करने वाली अन्य परतें होने के बावजूद। – anttix
फ़ायरफ़ॉक्स 20, सेलेनियम-फ़ायरफ़ॉक्स-ड्राइवर 2.31.0 के साथ काम नहीं कर रहा है। जब तत्व एक मॉडल संवाद – skong
द्वारा अवरोधित किया जाता है तो elementToBeClickable वापस सही होता है 2.31 के रिलीज़ नोट्स में फ़ायरफ़ॉक्स 20 के बारे में कुछ भी नहीं है। क्या यह फ़ायरफ़ॉक्स 1 9 में काम करता है? –