【系列】selenium自动化测试集锦---浏览器窗口处理

【系列】selenium自动化测试集锦

浏览器窗口处理

我们在使用selenium进行自动化测试调试脚本的过程中,经常会对浏览器窗口进行处理,小编对工作中常用的方法进行了总结,希望能帮助到大家。

1、 如何判断浏览器打开了一个新窗口?
(1)定义当前窗口的句柄集合

Set<String> handlesbefore = driver.getWindowHandles();

(2)进行某步操作后,再次取当前窗口的句柄集合,并与之前的句柄集合进行比较,如果两者相同,则说明未打开新窗口

driver.getWindowHandles().equals(handlesbefore)

2、 怎样跳转到新窗口中去?
(1) 定义当前窗口的句柄集合
(2) 使用foreach语法进行遍历,取到每一个窗口句柄,并查看该窗口的url地址是否包含目标信息即"title",找到包含目标信息的窗口后,进行跳转。

Set<String> handles = driver.getWindowHandles();
for(String hanlde:handles) {
	if(driver.switchTo().window(hanlde).getTitle().contains("title")) {
		driver.switchTo().window(hanlde);
}
}

可将该方法进行封装,传入driver,title信息即可调用

public static void switchToWindow(WebDriver driver,String title) {
	Set<String> handles = driver.getWindowHandles();
	for(String hanlde:handles) {
		if(driver.switchTo().window(hanlde).getTitle().contains(title)){
			driver.switchTo().window(hanlde);
	}
}

3、 关闭某个窗口后,怎么继续操作?
使用driver.close()关闭窗口后,可使用跳转新窗口的方法,重新获得需要操作的窗口句柄。

driver.close();
switchToWindow(driver,"目标title");

注意:此处调用的switchToWindow方法,用的就是问题2中的方法。

致力于软件测试技术提高,你的点赞、评论和转发,是对我莫大的鼓励!

本文作者在头条上的原创链接:https://www.toutiao.com/i6815123382749626884/

你可能感兴趣的:(selenium自动化测试,selenium,java,软件测试)