Selenium弹框处理操作详解

文章来源:未知 作者:admin 更新时间:2020-11-04

1、弹出框分类
 

弹出框分为两种,一种基于原生JavaScript写出来的弹窗,另一种是自定义封装好的样式的弹出框,本文重点介绍原生JavaScript写出来的弹窗,另一种弹窗用click()基本就能搞定。

原生JavaScript写出来的弹窗又分为三种:

 

2、弹窗处理常用方法
 

alert/confirm/prompt弹出框操作主要方法有:

driver.switchTo().alert():切换到alert弹出框上

getText():获取文本值

accept() :点击"确认"

dismiss() :点击"取消"或者关闭对话框

send_keys() :输入文本值 --仅限于prompt,在alert和confirm上没有输入框

 

被页面html源代码:

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>弹窗练习案例</title>

    <script language="javascript">

        function checkup() {

            if (window.confirm("确定要删除吗?")) {

                return true;

            } else {

                return false;

            }

        }

 

        function welcome() {

            var myname = prompt("请输入你的姓名:");

            if (myname != null) {

                alert("你好," + myname);

            } else {

                alert("你好 my friend.");

            }

        }

    </script>

</head>

<body>

<input id="alert" value="alert" type="button" onclick="alert(‘欢迎关注我的公号:软件测试君!请按确认继续!‘);"/><br>

<button id="dialog" onclick="checkup()">删除按钮</button><br>

<button id="welcome" onclick="welcome()">点击加入我们</button><br>

</body>

</html>

3、alert弹窗处理
 

具体实例代码如下:

@Test

    public void testAlert() {

        driver.get("file:///C:/Users/Administrator/Desktop/popup.html");

        driver.manage().window().maximize();

        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

        driver.findElement(By.id("alert")).click();

        //获取alert对话框

        Alert alert = driver.switchTo().alert();

        //获取对话框文本

        String text = alert.getText();

        //打印警告对话框内容

        System.out.println(text);

        //alert对话框属于警告对话框,我们这里只能接受弹窗

        alert.accept();

    }

 

4、confirm弹窗处理
 

具体实例代码如下:

@Test

    public void testConfirm() {

        driver.get("file:///C:/Users/Administrator/Desktop/popup.html");

        driver.manage().window().maximize();

        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

        driver.findElement(By.id("dialog")).click();

        //获取confirm对话框

        Alert alert = driver.switchTo().alert();

        //获取对话框的内容

        String text = alert.getText();

        //打印对话框的内容

        System.out.println(text);

        //点击“确认”按钮

        alert.accept();

        ////# 点击“取消”按钮

        //alert.dismiss();

}

 

5、prompt弹窗处理
 

具体实例代码如下:

@Test

    public void testPrompt() {

        driver.get("file:///C:/Users/Administrator/Desktop/popup.html");

        driver.manage().window().maximize();

        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

        driver.findElement(By.id("welcome")).click();

        //获取prompt对话框

        Alert alert = driver.switchTo().alert();

        //获取对话框的内容

        String text = alert.getText();

        //打印对话框的内容

        System.out.println(text);

        //在弹框内输入信息

        alert.sendKeys("软件测试君");

        //点击“确认”按钮,提交输入的内容

        alert.accept();

    }

 
 

上一篇:Python+selenium自动化之selenium常用API

下一篇:Selenium警告框处理操作详解

Copyright © 2016-2017 ZhiQueTech. All Rights Reserved

地址:山东省·济南市·长清大学科技园·青年城3号楼十层

鲁ICP备16036139号