2009-05-04 9 views
5

पर क्लिक करने के लिए सेलेनियम का उपयोग करें मैं एक HTML पृष्ठ में एक swf पर क्लिक करने के लिए सेलेनियम आईडीई का उपयोग करने की कोशिश कर रहा हूं। डीआईवी आईडी और एम्बेड आईडी परिवर्तन टाइमस्टैम्प पर निर्भर करता है उदा। id="FLASH_0_23458974594", मैंने id=/^FLASH_([0-9]+_)[0-9]([0-9]+)/ या id="FLASH_glob:*" का उपयोग करने का प्रयास किया है लेकिन आईडीई एसएफएफ नहीं उठा रहा है। क्या मुझसे यहां कुछ गलत हो रहा है?एक एसएफएफ

धन्यवाद।

उत्तर

3

क्या आपने कोशिश की है?

click | //object[contains(@id,'FLASH_')] 
+0

मैं बस किया था पर एक उदाहरण देख सकते हैं, और यह काम नहीं किया। मुझे यह त्रुटि मिली: [त्रुटि] लोकेटर नहीं मिला: // ऑब्जेक्ट [इसमें शामिल है (@ id, 'FLASH_')], त्रुटि = त्रुटि: तत्व // ऑब्जेक्ट [शामिल है (@ id, 'FLASH_')] नहीं मिला – JLau

+0

बस देखा कि आप एम्बेड टैग का उपयोग कर रहे हैं। आपको 'ऑब्जेक्ट' को 'एम्बेड' से प्रतिस्थापित करने की आवश्यकता हो सकती है। अन्यथा, क्या आप पृष्ठ से प्रासंगिक एचटीएमएल को अपने प्रश्न में जोड़ सकते हैं। –

+0

आईडीई एम्बेड का उपयोग करके इसका पता लगाने में सक्षम है, लेकिन यह इसे क्लिक नहीं कर रहा है। लॉग में यह दिखाता है - [जानकारी] निष्पादन: | क्लिक | // एम्बेड [शामिल है (@ आईडी, 'FLASH_')] | | लेकिन यह इसे क्लिक नहीं कर रहा है। – JLau

2

फ्लैश ऑब्जेक्ट पर क्लिक करने से काम नहीं होगा। सेलेनियम का उपयोग कर फ्लैश को स्वचालित करने का एकमात्र ज्ञात तरीका जावास्क्रिप्ट के माध्यम से फ़्लैश ऑब्जेक्ट में यूआई फ़ंक्शंस का खुलासा करना है। फिर आप सेलेनियम आरसी में getEval() फ़ंक्शन का उपयोग करके उस जावास्क्रिप्ट को कॉल कर सकते हैं।

0

हम सेलेनियम के लिए जावा क्लाइंट का उपयोग करते हैं और कभी-कभी हमारे परीक्षण माउस को स्थानांतरित करने के लिए जावा रोबोट का उपयोग करते हैं और क्लिक करते हैं जब हम सीधे वेब ब्राउज़र से बातचीत नहीं कर सकते हैं। इसमें डाउनसाइड्स हैं (जैसे ब्राउज़र अग्रभूमि में होना चाहिए और सटीकता थोड़ा मुश्किल हो सकती है) लेकिन जब वर्चुअल मशीन में परीक्षण चलते हैं तो इन डाउनसाइड्स को कम किया जाता है।

1

यह विषय काफी पुराना है, लेकिन जैसा कि मैंने समाधान खोजने के लिए कई बार बिताया, मैं इस सवाल का जवाब देता हूं। जैसा कि @Zugwalt कहा गया है, आप जावा Robot कक्षा का उपयोग कर सकते हैं। लेकिन यदि आप सेलेनियम ग्रिड और इसलिए रिमोट वेब ड्राइवर का उपयोग करते हैं, तो आप अपनी रिमोट मशीन पर एसएसएच कनेक्शन खोलने के लिए jsch का उपयोग कर सकते हैं और किसी दिए गए स्थान पर क्लिक करने के लिए xdotool पर कॉल कर सकते हैं।

आप इस Gist

+1

मेरा आखिरी काम हमने वेबक्राइवर के साथ [सिकुली] (http://www.sikuli.org/) का उपयोग करना शुरू किया, यह हमारे लिए बहुत अच्छा काम करता है। – JLau

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

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