如何在 Selenium Webdriver 中從框架切換回預設狀態?


我們可以使用 switchTo().defaultContent() 方法從框架切換回 Selenium Webdriver 中的預設狀態。最初,webdriver 控制仍保留在主頁上。

為了訪問框架中的元素,我們必須使用 switchTo().frame 的幫助將控制從主頁切換到框架,並將框架的框架名稱/ID 或框架的 Web 元素作為引數傳遞給該方法。

最後,我們再次可以使用 switchTo().defaultContent() 方法將控制切換到主頁。框架在 html 程式碼中由標籤名(frame、iframe 或 frameset)標識。

讓我們識別位於框架中的文字 Iframe,以及文字單擊下面的連結,而文字位於框架外。

示例

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import java.util.concurrent.TimeUnit;
public class FrameDefaultSwitch{
public static void main(String[] args) {
   System.setProperty("webdriver.gecko.driver",
      "C:\Users\ghs6kor\Desktop\Java\geckodriver.exe");
   WebDriver driver = new FirefoxDriver();
   //implicit wait
   driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
   //URL launch
   driver.get("http://www.uitestpractice.com/Students/Switchto");
   // switch to frame
   driver.switchTo().frame("iframe_a");
   //identify element inside frame
   WebElement d = driver.findElement(By.tagName("h1"));
   System.out.println("Text inside frame: " + d.getText());
   //switch to default
   driver.switchTo().defaultContent();
   //identify element outside frame
   WebElement e = driver.findElement(By.tagName("h3"));
   System.out.println("Text outside frame: " + e.getText());
   driver.quit();}
}

輸出

更新日期:2021 年 4 月 6 日

7K+ 瀏覽量

開啟你的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.