如何在 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+ 浏览量

开启你的 职业生涯

完成课程获得认证

开始
广告