以下内容来自于 "风少" 的博客 《元素定位: selenium 消息框处理 (alert,confirm,prompt)》
基础普及
alert 对话框 . 细分三种, Alert,prompt,confirm
1. alert() 弹出个提示框 (确定)
警告消息框 alert 方法有一个参数, 即希望对用户显示的文本字符串. 该字符串不是 html 格式. 该消息框提供了一个 "确定" 按钮让用户关闭该消息框, 并且该消息框是模式对话框, 也就是说, 用户必须先关闭该消息框然后才能继续进行操作.
2. confirm() 弹出个确认框 (确定, 取消)
确认消息框 使用确认消息框可向用户问一个 "是 - 或 - 否" 问题, 并且用户可以选择单击 "确定" 按钮或者单击 "取消" 按钮. confirm 方法的返回值为 true 或 false. 该消息框也是模式对话框: 用户必须在响应该对话框 (单击一个按钮) 将其关闭后, 才能进行下一步操作.
3. prompt() 弹出个输入框(确定, 取消)
提示消息框 提供了一个文本字段, 用户可以在此字段输入一个答案来响应您的提示. 该消息框有一个 "确定" 按钮和一个 "取消" 按钮. 如果您提供了一个辅助字符串参数, 则提示消息框将在文本字段显示该辅助字符串作为默认响应. 否则, 默认文本为 "<undefined>".
selenium 处理:
alert() 提示框
1. driver.switchTo().alert(); 获取 alert
2. alert.accept(); 点确定
3. alert.dismiss(); 点取消
4. alert.getText(); 获取 alert 的内容
- 1. alert()
- try{
- Alert alert =driver.switchTo().alert(); // 使用 driver.switchTo().alert()方法获取到 alert 对象
- Assert.assertEquals("弹框实际文本", alert.getText()); // 断言弹框文本是否和预期一致
- alert.accept(); // 点击确定
- // alert.dismiss(); // 点击取消
- }catch(NoAlertPresentException exception){ // 弹框未显示, 则跑出异常
- Assert.fail("尝试操作的 alert 框没有被找到");
- exception.printStackTrace();
- }
2. confirm() ps: 同 alert 一致
- try{
- Alert alert =driver.switchTo().alert();
- Assert.assertEquals("弹框实际文本", alert.getText());
- alert.accept();
- // alert.dismiss();
- }catch(NoAlertPresentException exception){
- Assert.fail("尝试操作的 alert 框没有被找到");
- exception.printStackTrace();
- }
- 3. prompt()
- try{
- Alert alert =driver.switchTo().alert();
- Assert.assertEquals("弹框实际文本", alert.getText());
- alert.sendKeys("promt 框中输入的内容");
- alert.accept();
- // alert.dismiss();
- }catch(NoAlertPresentException exception){
- Assert.fail("尝试操作的 alert 框没有被找到");
- exception.printStackTrace();
- }
来源: http://www.bubuko.com/infodetail-2828641.html