一:处理浏览器弹出多个窗口
// 打开网页执行操作
String url = "http://*******";
driver.get(url);
driver.manage().window().maximize();
WebElement logoElement1 = driver.findElement(By.className("loginName"));
logoElement1.click();
// 获取当前页面的句柄
String currentHandle = driver.getWindowHandle();
// 单击iTask链接
WebElement webElement2= driver.findElement(By.linkText("iTask"));
webElement2.click();
// 单击iTask之后,会打开一个新的窗口,获取所有窗口的句柄
Set<String> allHandles = driver.getWindowHandles();
// 对获取的所有句柄进行循环判断,把当前句柄从所有句柄中移除,剩下的就是想要获得的新窗口的句柄
Iterator<String> iter = allHandles.iterator();
String handle = null;
WebDriver driverNew = null;
while(iter.hasNext()) {
handle = iter.next();
if(currentHandle == handle)//过滤掉当前窗口
continue;
driverNew = driver.switchTo().window(handle);/跳转到新窗口页面
}
// 关闭当前窗口
driverNew.close();
// 关闭浏览器
driver.switchTo().window(currentHandle);
driver.quit();
二:处理弹出框请求
Alert test_alert=driver.switchTo().alert()//捕获弹出对话框JS,JQuery(可以定位alert、confirm、prompt对话框)
test_alert.getText() --获取对话框文本值
test_alert.accept() --相当于点击“确认”---------或(driver.switchTo().alert().accept(); )
test_alert.dismiss() --相当于点击“取消”
test_alert.send_keys() --输入值(alert和confirm没有输入对话框,所以就不用能用了,只能使用在prompt里)
System.setProperty("webdriver.chrome.driver", ".\\tools\\chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.manage().window().maximize();
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
driver.get("xxxxx");
driver.findElement(By.xpath("xxxxx")).sendKeys("xxxxx");
driver.findElement(By.xpath("xxxxx")).sendKeys("xxxxx");
driver.findElement(By.xpath("xxxxx")).click();
Alert test_alert=driver.switchTo().alert();//获取弹出框
System.out.print(test_alert.getText());//获取框中文本内容
//confirm框:test_alert.dismiss();
test_alert.accept();//点击弹出框确定键
参考https://blog.csdn.net/lykio_881210/article/details/80915882