特殊窗口切换
基本代码演示
package com.test.demo;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.testng.annotations.Test;
import java.util.Set;
/**
* @author Huangtian
* @create 2019-03-11 15:18
*/
public class Window_Handles extends Input_Element {
//百度跳转按钮
@FindBy(className = "baidu-logo-2x")
WebElement baidu;
//百度搜索输入框
@FindBy(id = "kw")
WebElement kw;
//qq邮箱iframe
@FindBy(id = "login_frame")
WebElement login_frame;
//用户名输入框
@FindBy(id = "u")
WebElement u;
@Test(enabled = false)
public void window_handle() {
/**
* 窗口句柄切换
*/
driver.get("https://www.hao123.com/");
super.setWindowMax();
//获取当前窗口句柄
String handle1 = driver.getWindowHandle();
baidu.click();
//获取当前窗口标题
String title = driver.getTitle();
System.out.println(title);
//获取所有窗口句柄
Set<String> handles = driver.getWindowHandles();
for (String handle : handles) {
/**
* 判断当前如果是之前的句柄则继续循环,直至切换至新句柄
*/
if (handle.equals(handle1)) {
continue;
}
//切换到新句柄
driver.switchTo().window(handle);
kw.sendKeys("holyshit");
}
}
@Test
public void qq_email(){
/**
* iframe切换
*/
driver.get("https://mail.qq.com/");
super.setWindowMax();
//切换到登录框iframe
driver.switchTo().frame(login_frame);
//输入用户名
u.sendKeys("ihuangtian");
}
}