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<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

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值