2013-05-13 8 views
6

मैं जावास्क्रिप्ट में एक फ़ंक्शन ढूंढ रहा हूं जो मेरे पृष्ठ पर प्रत्येक तत्व (लिंक, बटन, ...) पर क्लिक करता है। डिफ़ॉल्ट रूप से सभी तत्वों को अक्षम किया जाना चाहिए। मैं यह जांचने के लिए सेलेनियम में अपने परीक्षण पर्यावरण के लिए इसका उपयोग कर रहा हूं कि मेरे पृष्ठ पर सभी तत्व निष्क्रिय हैं या नहीं।किसी पृष्ठ पर सभी तत्वों का चयन करें

+0

आपने क्या प्रयास किया –

+0

मैं सेलेनियम से उपलब्ध एक समारोह के साथ सभी लिंक प्राप्त करने का प्रयास कर रहा था: selenium.getAllLinks() और मैंने क्लिक() के साथ प्रयास किया। GetAllLinks() के साथ भी मैं कोई लिंक प्राप्त करने में सक्षम नहीं हूं ... – John

उत्तर

7

सबसे पहले, अपने पृष्ठ पर सभी तत्वों को मिलती है:

var elements = document.getElementsByTagName("*"); 

अब जब कि तुम उन्हें मिलता है, एक माउस घटना बनाने के एक पाश बनाने के लिए और हर तत्व पर घटना लागू होते हैं:

var clickEvent = document.createEvent ('MouseEvents'); 
clickEvent.initEvent ('click', true, true); 
for (var i=0; i < elements.length; i++) 
{  
    elements[i].dispatchEvent (clickEvent); 
} 
+0

अरे! आपके त्वरित उत्तर के लिए धन्यवाद! मैं आपके कोड का पालन कर सकता हूं और यह मुझे समझता है। दुर्भाग्यवश मैं दस्तावेज़ से बाहर कोई तत्व प्राप्त करने में सक्षम नहीं हूं .getElementsByTagName ("*"); – John

+0

मैंने कोड में कुछ टाइपो बदल दिए हैं, शायद यह अब बेहतर काम करता है? यह भी सुनिश्चित करें कि आप उस फ़ंक्शन को कॉल करें जो दस्तावेज़ लोड होने के बाद क्लिक का परीक्षण करेगा। अगर मैं इसे शरीर के ऑनलोड स्टेटमेंट में डालता हूं, तो मेरा कोड ठीक काम करता है! – JasperV

+0

तो यदि आप कोड को निष्पादित कर रहे हैं तो आपका ब्राउज़र प्रत्येक लिंक पर क्लिक करता है? वास्तव में, यदि लिंक सक्रिय हैं, तो क्लिक किया गया पहला लिंक आपको अगले पृष्ठ पर रीडायरेक्ट करना चाहिए। यदि लिंक अक्षम हैं, तो कुछ भी नहीं होना चाहिए। इस तरह मैं उम्मीद करता हूं कि इसे काम करना चाहिए। हालांकि, अब मैं अपने selenium.getAllLinks के साथ पृष्ठ के लिंक को प्राप्त करने में सक्षम हूं। हालांकि, क्लिकवेन्ट कुछ भी नहीं प्रतीत होता है। – John

संबंधित मुद्दे