Chúng tôi có thể làm việc với iframe trong Selenium webdriver. Khung được xác định bằng thẻ
Selenium theo mặc định có quyền truy cập vào trình điều khiển trình duyệt mẹ. Để truy cập phần tử khung, tiêu điểm trình điều khiển phải chuyển từ cửa sổ trình duyệt chính sang khung. Có nhiều phương pháp để chuyển sang khung -
-
switchTo (). frame (id) - Id hoặc tên của frame được chuyển làm đối số.
Cú pháp −driver.switchTo (). Frame ("id"), chuyển sang khung có id.
-
switchTo (). frame (m) - Chỉ mục của frame được truyền như một đối số. Chỉ mục bắt đầu từ số không.
Cú pháp −driver.switchTo (). Frame (0), chuyển sang khung đầu tiên trong trang.
-
switchTo (). frame (webelement n) - Phần webelement của frame được chuyển như một đối số.
Cú pháp −driver.switchTo (). Frame (l), chuyển sang frame với webelement l.
-
switchTo (). defaultContent () - Chuyển tiêu điểm từ khung sang trang chính.
Cú pháp −driver.switchTo (). DefaultContent ()
Ví dụ
Triển khai mã.
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); // identify element and click driver.findElement(By.partialLinkText("Nested")).click(); // switching to frame with frame name driver.switchTo().frame("frame-bottom"); WebElement m = driver.findElement(By.cssSelector("body")); System.out.println("Frame text: " +m.getText()); driver.close(); } }
Đầu ra