मेरे पास एक .jsp पृष्ठ है जिससे मैं वेब तत्वों को पकड़ने और क्लिक और इनपुट फ़ंक्शन करने का प्रयास कर रहा हूं। जेएसपी पेज पर इन वेब तत्वों की पहचान करने की कोशिश करने के परीक्षण और त्रुटि के बाद, मैंने देखा कि पेज में "आईफ्रेम" है। मैंने नाम से iframes के माध्यम से नेविगेट करने में सक्षम होने के लिए संसाधनों को देखा है, और यहां अनुक्रमणिका द्वारा iframes नेविगेट कर रहा हूं

https://www.guru99.com/handling-iframes-selenium.html 

हालांकि, मुझे लगता है कि मेरे पास एक विशेष मामला है क्योंकि जिन आईफ्रेम से मैं निपट रहा हूं उनमें कोई तत्व आईडी या नाम नहीं है। साथ ही, जिस आईफ्रेम पर मुझे नेविगेट करने की आवश्यकता है वह अन्य आईफ्रेम के भीतर नेस्टेड है।

क्योंकि जहां तक ​​​​मुझे पता है, मैं स्विचटो ()। फ्रेम (इंडेक्स) का उपयोग करने तक ही सीमित हूं

चूंकि किसी भी आईफ्रेम का नाम नहीं है, मैंने पहले ही webDriver.switchTo().frame(index);

लेकिन क्योंकि मैं नेस्टेड आईफ्रेम से निपट रहा हूं, मुझे यकीन नहीं है कि मुझे वह जगह मिल रही है जहां मुझे होना चाहिए। मैंने कुछ ऐसा करने की कोशिश की है

webDriver.switchTo().frame(0);
webDriver.switchTo().frame(1);
webDriver.switchTo().frame(2);
webDriver.switchTo().frame(3);

यह देखने के लिए कि अपवाद मिलने से पहले मैं कितनी दूर तक ड्रिल कर सकता हूं। यह बहुत कठिन है क्योंकि मैं यह पहचानने में भी असमर्थ हूं कि मैं वर्तमान में किस आईफ्रेम में हूं। शायद मुझे वर्तमान आईफ्रेम का ऑब्जेक्ट बनाना होगा, और उस तरह से ड्रिल करना होगा?

कोड कुछ इस तरह दिखता है ...

<iframe height="708px" width="100%" marginheight="0" frameborder="0" scrolling="auto" src="..."></iframe>
...
<iframe height="708px" width="100%" marginheight="0" frameborder="0" scrolling="auto" src="..."></iframe>
...
...<iframe onload="..." height="100%" width="100%" marginheight="0" frameborder="0" scrolling="no" src="..."></iframe>
...
... ...<iframe onload="..." height="100%" width="100%" marginheight="0" frameborder="0" scrolling="YES" src="..."></iframe> 

मुझे यहीं रहना है

मैं आईफ्रेम के अंदर वेब तत्वों को सफलतापूर्वक पकड़ने में सक्षम होने की उम्मीद करता हूं, लेकिन मैं अब तक असफल रहा हूं क्योंकि मुझे यकीन नहीं है कि इन आईफ्रेम के माध्यम से कैसे नेविगेट किया जाए। मैं मान रहा हूँ कि

webDriver.switchTo().frame(index);

मेरा एकमात्र विकल्प है क्योंकि आईफ्रेम अज्ञात हैं और कोई तत्व आईडी नहीं है। लेकिन इसलिए मैं यहाँ हूँ।

0
Austin Duran 23 जून 2019, 02:25

2 जवाब

सबसे बढ़िया उत्तर

मेरी समस्या का उत्तर मिला।

इस तथ्य से अवगत रहें कि प्रत्येक आईफ्रेम इंडेक्स 0 से शुरू होता है।

इसलिए यदि आपने बिना नाम या आईडी के iframes नेस्टेड किया है - ऐसा कुछ

(फ़्रेम सी) (फ़्रेम बी) में नेस्टेड है जो (फ़्रेम ए) में नेस्टेड है

  • फ़्रेम ए
  • ---फ्रेम बी
  • ------फ्रेम सी

आप कुछ इस तरह की कोशिश करेंगे

    driver.switchTo().frame(0)
    driver.switchTo().frame(0)
    driver.switchTo().frame(0)

"फ़्रेम सी" प्राप्त करने के लिए

1
Austin Duran 7 जिंदा 2020, 21:31

भाई, जैसा कि आपने इंडेक्स नंबर के साथ सीमित किया है, आपने अपनी देव टीम के साथ कॉल क्यों नहीं किया और अनुरोध के आधार पर फ्रेम नाम सेट करने के लिए कहा। हमने ऐसे ही मामलों में किया था

0
bheemesh 23 जून 2019, 07:54