Webdriver学习笔记(六)多窗口的切换处理

在平时测试时,经常会遇到弹出一个窗口,或者新开一个页面,并且得在新弹出或者新开的页面上做测试操作。

这就需要我们在不同的多个窗口中不停的做切换操作,这里所说切换其实就是把浏览器控制权交给对应的窗口或者页面。

例子:我们直接以百度首页,点击“注册”为例子。当我们点击“注册”后会打开新页面,如果不把控制权交给新开的页面,将无法操作新页面。

import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class WindowHandlesTest {
	@Test
	public void windowHandlesTest() {
		// 设置chromedriver的路径,根据你具体存放位置来设置路径
		System.setProperty("webdriver.chrome.driver", "C:\\holmosconf\\driverServers\\chromedriver.exe");
		// 启动Chrome浏览器
		WebDriver driver = new ChromeDriver();
		// get方式打开百度首页
		driver.get("http://www.baidu.com");
		// 定位"注册"标签
		WebElement baidu = driver.findElement(By.name("tj_reg"));
		// 点击“注册”标签
		baidu.click();
		// 打印出当前页面title,发现还是获取百度首页的title
		System.out.println(driver.getTitle());
		// 获取当前页面句柄
		String handle = driver.getWindowHandle();
		// 获取所有页面的句柄,并循环判断不是当前的句柄,就做选取switchTo()
		for (String handles : driver.getWindowHandles()) {
			if (handles.equals(handle))
				continue;
			driver.switchTo().window(handles);
		}
		// 打印出当前页面title,发现我已经把控制权交给了注册页面
		System.out.println(driver.getTitle());
		// 选取原来的句柄,回到原来页面
		driver.switchTo().window(handle);
		// 打印出当前页面title,发现我们又回到了百度首页
		System.out.println(driver.getTitle());
		// 结束测试
		driver.quit();
	}
}
运行结果:可以直接通过控制台输出,title的变化来查看是否窗口切换成功

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值