हम सेलेनियम वेबड्राइवर में iframe के साथ काम कर सकते हैं। HTML कोड में एक फ्रेम को <iframe>, <frameset> या <frame> टैग से परिभाषित किया जाता है। एक फ्रेम का उपयोग एक HTML डॉक्यूमेंट को दूसरे HTML डॉक्यूमेंट के अंदर एम्बेड करने के लिए किया जाता है।

सेलेनियम का डिफ़ॉल्ट रूप से पैरेंट ब्राउज़र ड्राइवर तक एक्सेस होता है। फ्रेम एलिमेंट तक पहुंचने के लिए, ड्राइवर फोकस को मेन ब्राउज़र विंडो से फ्रेम पर शिफ्ट करना होगा। फ्रेम पर शिफ्ट करने के एक से अधिक तरीके हैं:
switchTo().frame(id) - फ्रेम की आईडी या नाम को आर्गुमेंट के रूप में पास किया जाता है।
सिंटैक्स:driver.switchTo().frame("id"), आईडी वाले फ्रेम पर स्विच करना।switchTo().frame(m) - फ्रेम के इंडेक्स को आर्गुमेंट के रूप में पास किया जाता है। इंडेक्स शून्य से शुरू होता है।
सिंटैक्स:driver.switchTo().frame(0), पेज में पहले फ्रेम पर स्विच करना।switchTo().frame(webelement n) - फ्रेम के वेबएलिमेंट को आर्गुमेंट के रूप में पास किया जाता है।
सिंटैक्स:driver.switchTo().frame(l), वेबएलिमेंट l वाले फ्रेम पर स्विच करना।switchTo().defaultContent() - फ्रेम से मेन पेज पर फोकस वापस स्विच करना।
सिंटैक्स:driver.switchTo().defaultContent()
उदाहरण
कोड कार्यान्वयन।
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class iFrameMethods {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\ghs6kor\\Desktop\\Java\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://the-internet.herokuapp.com/frames");
driver.manage().timeouts().implicitlyWait(8, TimeUnit.SECONDS);
// एलिमेंट की पहचान करें और क्लिक करें
driver.findElement(By.partialLinkText("Nested")).click();
// फ्रेम नाम के साथ फ्रेम पर स्विच करें
driver.switchTo().frame("frame-bottom");
WebElement m = driver.findElement(By.cssSelector("body"));
System.out.println("फ्रेम टेक्स्ट: " + m.getText());
driver.close();
}
}
आउटपुट
