如何在 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();} }
输出
广告