Selenium WebDriver-এ iframe বা ফ্রেম নিয়ে কাজ করার জন্য ড্রাইভারের ফোকাস মূল পেজ থেকে iframe-এ শিফট করতে হয়। HTML-এ iframe <iframe>, <frameset> বা <frame> ট্যাগ দিয়ে সংজ্ঞায়িত হয়।

ফ্রেমে স্যুইচ করার পদ্ধতিগুলো
- switchTo().frame(id) - ফ্রেমের id বা name দিয়ে স্যুইচ। সিনট্যাক্স:
driver.switchTo().frame("id") - switchTo().frame(index) - ফ্রেমের ইনডেক্স (০ থেকে শুরু) দিয়ে স্যুইচ। সিনট্যাক্স:
driver.switchTo().frame(0) - switchTo().frame(webelement) - ফ্রেমের WebElement দিয়ে স্যুইচ। সিনট্যাক্স:
driver.switchTo().frame(element) - switchTo().defaultContent() - ফ্রেম থেকে মূল পেজে ফিরে যাওয়া। সিনট্যাক্স:
driver.switchTo().defaultContent()
উদাহরণ (Java)
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);
// Nested Frames লিঙ্কে ক্লিক
driver.findElement(By.partialLinkText("Nested")).click();
// ফ্রেম নাম দিয়ে স্যুইচ
driver.switchTo().frame("frame-bottom");
WebElement m = driver.findElement(By.cssSelector("body"));
System.out.println("Frame text: " + m.getText());
driver.close();
}
}
আউটপুট

মনে রাখবেন: নেস্টেড iframe থাকলে বাহার থেকে ভেতর আস্তে আস্তে স্যুইচ করতে হয়, এবং কাজ শেষে defaultContent() দিয়ে মূল পেজে ফিরে আসা জরুরি।