Selenium Webdriver中弹出框,弹出窗口整理

一:处理浏览器弹出多个窗口

// 打开网页执行操作
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 allHandles = driver.getWindowHandles();
 
// 对获取的所有句柄进行循环判断,把当前句柄从所有句柄中移除,剩下的就是想要获得的新窗口的句柄
Iterator 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

你可能感兴趣的:(Selenium)