selenium-webdriver
स्विचन फ्रेम्स
खोज…
वाक्य - विन्यास
- जावा
- Driver.switchTo ()। फ्रेम (स्ट्रिंग नाम);
- Driver.switchTo ()। फ्रेम (स्ट्रिंग आईडी);
- Driver.switchTo ()। फ्रेम (इंट इंडेक्स);
- Driver.switchTo ()। फ़्रेम (वेबइमेंट फ़्रेमइलमेंट);
- । Driver.switchTo () defaultContent ();
- सी#
- Driver.SwitchTo ()। फ़्रेम (int फ्रेमइंडेक्स);
- Driver.SwitchTo ()। फ़्रेम (IWebElement फ़्रेमElement);
- Driver.SwitchTo ()। फ़्रेम (स्ट्रिंग फ़्रेमनाम);
- । Driver.SwitchTo () DefaultContent ();
- अजगर
- driver.switch_to_frame (nameOrId)
- driver.switch_to.frame (nameOrId)
- driver.switch_to_frame (इंडेक्स)
- driver.switch_to.frame (इंडेक्स)
- driver.switch_to_frame (frameElement)
- driver.switch_to.frame (frameElement)
- driver.switch_to_default_content ()
- driver.switch_to.default_content ()
- जावास्क्रिप्ट
- driver.switchTo ()। फ्रेम (nameOrId)
- driver.switchTo ()। फ्रेम (इंडेक्स)
- driver.switchTo ()। defaultContent ()
पैरामीटर
पैरामीटर | विवरण |
---|---|
nameOrId | आईडी के नाम से एक फ्रेम चुनें। |
सूची | इसके शून्य-आधारित सूचकांक द्वारा एक फ्रेम का चयन करें। |
frameElement | पहले से स्थित WebElement का उपयोग करके एक फ्रेम का चयन करें |
जावा का उपयोग करके एक फ्रेम पर स्विच करने के लिए
उदाहरण के लिए, यदि HTML स्रोत या तत्व का html स्रोत कोड इस तरह से एक iframe द्वारा लिपटा हो:
<iframe src="../images/eightball.gif" name="imgboxName" id="imgboxId">
<p>iframes example</p>
<a href="../images/redball.gif" target="imgbox">Red Ball</a>
</iframe><br />
... तो iframe के वेब-तत्वों पर कोई भी क्रिया करने के लिए, आपको पहले दिए गए तरीकों में से किसी एक का उपयोग करके, iframe पर ध्यान केंद्रित करना होगा:
फ़्रेम आईडी का उपयोग करना चाहिए (केवल तभी उपयोग किया जाना चाहिए जब आप आइफ्रेम की आईडी जानते हों)।
driver.switchTo().frame("imgboxId"); //imgboxId - Id of the frame
फ़्रेम नाम का उपयोग करना चाहिए (इसका उपयोग केवल तभी किया जाना चाहिए यदि आप आइफ्रेम का नाम जानते हैं)।
driver.switchTo().frame("imgboxName"); //imgboxName - Name of the frame
फ्रेम इंडेक्स का उपयोग करना चाहिए (केवल अगर आपके पास आइफ्रेम का नाम या नाम नहीं है) का उपयोग किया जाना चाहिए, जहां इंडेक्स सभी फ़्रेमों के बीच आईफ्रेम की स्थिति को परिभाषित करता है।
driver.switchTo().frame(0); //0 - Index of the frame
नोट: यदि आपके पेज में तीन फ्रेम हैं, तो पहला फ्रेम इंडेक्स 0 पर होगा, दूसरा इंडेक्स 1 में और तीसरा इंडेक्स 2 पर होगा।
पहले से मौजूद वेजमेंट का उपयोग करना चाहिए (इसका उपयोग केवल तभी किया जाना चाहिए जब आप पहले से ही फ़्रेम को स्थित कर चुके हैं और इसे WebElement
रूप में वापस कर WebElement
)।
driver.switchTo().frame(frameElement); //frameElement - webelement that is the frame
तो, Red Ball
एंकर पर क्लिक करें:
driver.switchTo().frame("imgboxId");
driver.findElement(By.linkText("Red Ball")).Click();
जावा का उपयोग करके एक फ्रेम से बाहर निकलने के लिए
फ़ोकस को मुख्य दस्तावेज़ या पृष्ठ के पहले फ्रेम पर स्विच करने के लिए। आपको सिंटेक्स के नीचे उपयोग करना होगा।
driver.switchTo().defaultContent();
C # का उपयोग करके फ़्रेम में स्विच करें
1. इंडेक्स द्वारा एक फ्रेम पर स्विच करें।
यहां हम इंडेक्स 1 पर स्विच कर रहे हैं। इंडेक्स पेज पर फ्रेम के क्रम को संदर्भित करता है। इसका उपयोग अंतिम उपाय के रूप में किया जाना चाहिए, क्योंकि फ्रेम आईडी या नाम बहुत अधिक विश्वसनीय हैं।
driver.SwitchTo().Frame(1);
2. नाम से एक फ्रेम पर स्विच करें
driver.SwitchTo().Frame("Name_Of_Frame");
3. IWebElement को पारित करके शीर्षक, आईडी, या अन्य द्वारा एक फ्रेम पर स्विच करें
यदि आप आईडी या शीर्षक से किसी फ्रेम में स्विच करना चाहते हैं, तो आपको एक वेब तत्व में एक पैरामीटर के रूप में पास करना होगा:
driver.SwitchTo().Frame(driver.FindElement(By.Id("ID_OF_FRAME")));
driver.SwitchTo().Frame(driver.FindElement(By.CssSelector("iframe[title='Title_of_Frame']")));
यह भी ध्यान दें कि यदि आपके फ्रेम को ऊपर आने में कुछ सेकंड लगते हैं, तो आपको प्रतीक्षा का उपयोग करना पड़ सकता है:
new WebDriverWait(driver, TimeSpan.FromSeconds(10))
.Until(ExpectedConditions.ElementIsVisible(By.Id("Id_Of_Frame")));
एक फ्रेम से बाहर निकलें:
driver.SwitchTo().DefaultContent()
C # का उपयोग कर एक फ्रेम से बाहर निकलने के लिए
फ़ोकस को मुख्य दस्तावेज़ या पृष्ठ के पहले फ्रेम पर स्विच करने के लिए। आपको सिंटेक्स के नीचे उपयोग करना होगा।
। WebDriver.SwitchTo () DefaultContent ();
पैरेंट फ़्रेम के चाइल्ड फ्रेम्स के बीच स्विच करें।
विचार करें कि आपके पास एक पेरेंट फ़्रेम (फ़्रेम-पैरेंट) है। और 2 बच्चे फ्रेम (फ्रेम_ऑन, फ्रेम_डॉटर)। विभिन्न स्थितियों को देखते हैं और कैसे संभालते हैं।
1. बेटे या बेटी के लिए माता-पिता से:
driver.switchTo().frame("Frame_Son");
driver.switchTo().frame("Frame_Daughter");
2. पैरेंट बेटे से: यदि पैरेंट डिफॉल्ट फ्रेम है, तो डिफॉल्ट फ्रेम पर स्विच करें, अन्यथा डिफॉल्ट फ्रेम स्विच से पेरेंट फ्रेम में स्विच करें। लेकिन आप बेटे से माता-पिता तक सीधे स्विच नहीं कर सकते।
driver.switchTo().defaultContent();
driver.switchTo().frame("Frame_Parent");
3. बेटी से बेटी के लिए: यदि आपकी बहन कुछ गलती करती है तो उस पर चिल्लाओ मत, बस अपने माता-पिता के पास पहुंच जाओ। इसी तरह, आप पैरेंट फ्रेम और फिर बेटी फ्रेम को कंट्रोल देते हैं।
driver.switchTo().defaultContent();
driver.switchTo().frame("Frame_Parent");
driver.switchTo().frame("Frame_Daughter");
अपने फ़्रेम लोड होने की प्रतीक्षा करें
काफी कुछ मामलों में आपका फ्रेम तुरंत नहीं दिख सकता है और स्विच करने के लिए लोड होने तक आपको शायद इंतजार करना होगा। या फिर आपके पास NoSuchFrameException होगी।
तो इसका हमेशा एक अच्छा विकल्प है कि आप स्विच करने से पहले प्रतीक्षा करें। निम्नलिखित एक फ्रेम लोड होने तक प्रतीक्षा करने का एक आदर्श तरीका है।
try{
new WebDriverWait(driver, 300).ignoring(StaleElementReferenceException.class).
ignoring(WebDriverException.class).
until(ExpectedConditions.visibilityOf((driver.findElement(By.id("cpmInteractionDivFrame"))));}
catch{
// आपके अपवाद को केवल तभी फेंकता है जब आपका फ़्रेम आपके प्रतीक्षा समय 300 सेकंड में दिखाई नहीं देता है}