前言
这些是过去学习和工作中积累的个人总结,不过可能会存在一些主观臆断,如果有说错的地方,请指出来哦!
回答
弹窗类型
在WEB中的弹出类型有三种:
-
警告框alert(message)
- 用于显示带有一条指定消息和一个 OK 按钮的警告框。
-
确认框confirm(message)
- 用于显示一个带有指定消息和 OK 及取消按钮的对话框。
- 如果用户点击确定按钮,则 confirm() 返回 true。
- 如果点击取消按钮,则 confirm() 返回 false。
-
提示框prompt(text,defaultText):
- 用于显示可提示用户进行输入的对话框。
- 如果用户单击提示框的取消按钮,则返回 null。
- 如果用户单击确认按钮,则返回输入字段当前显示的文本。
弹出处理
在WEB自动化中针对弹窗的处理,有以下两种方式:
-
弹窗可以找到对应元素
- 则直接使用Selenium提供的八大定位方式处理
-
弹窗无法定位元素
-
则使用Selenium提供的Alert对应方法处理
- switchTo().alert():切换到弹窗
- getText():获取弹框文本
- sendKeys(text):在弹窗中输入文本内容
- accept():点击弹窗中的确认按钮
- dismiss():点击弹窗中的取消按钮
-
主要步骤
- 获取并切换弹出框对象
- 根据业务需求,获取文本,输入内容,点击确认,点击取消等操作
-
示例
-
public class L1ActualCombatCase {
private static WebDriver driver;
// 前置条件 driver实例化
@BeforeAll
static void setUP() {
System.setProperty("webdriver.chrome.driver", "src/main/resources/ChromeDriver/chromedriver");
driver = new ChromeDriver();
}
// 后置操作 浏览器退出
@AfterAll
static void tearDown() {
driver.quit();
}
//测试步骤
@Test
public void elementOperate() throws InterruptedException {
// 打开得物社区精选的页面
driver.get("https://vip.ceshiren.com/#/ui_study/frame");
// 窗口最大化
driver.manage().window().maximize();
// 点击页面元素
driver.findElement(By.id("warning_btn")).click();
// 切换到弹窗
Alert alertEle = driver.switchTo().alert();
System.out.println(alertEle.getText());
Thread.sleep(2000);
alertEle.accept();
Thread.sleep(2000);
}
}
结果