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的变化来查看是否窗口切换成功

你可能感兴趣的:(selenium,2.0)