Selenium+java - 弹出框处理

Selenium+java - 弹出框处理

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

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

alertjava

Selenium+java - 弹出框处理

confirm微信

Selenium+java - 弹出框处理

prompt
Selenium+java - 弹出框处理ide

2、弹窗处理经常使用方法:测试

  • alert/confirm/prompt弹出框操做主要方法有:
  • driver.switchTo().alert():切换到alert弹出框上
  • getText():获取文本值
  • accept() :点击"确认"
  • dismiss() :点击"取消"或者关闭对话框
  • send_keys() :输入文本值 --仅限于prompt,在alert和confirm上没有输入框
    3、被页面html源代码:code

    <!DOCTYPE html>
    <html lang="en">
    <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>

    4、alert弹窗处理
    具体实例代码以下:htm

     

@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();
}blog

5、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();
}ip

6、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();
}

6、运行结果
![](https://s4.51cto.com/images/blog/202011/29/7aeb5829895d6747839a99c7bd5ebfac.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

__EOF__

本文做者:久曲建的测试窝
本文连接:https://www.cnblogs.com/longronglang/p/11283232.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客全部文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:若是您以为文章对您有帮助,能够点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
优秀不够,你是否无可替代

软件测试交流QQ群:721256703,期待你的加入!!

欢迎关注个人微信公众号:软件测试君

![](https://s4.51cto.com/images/blog/202011/29/ce31fca0fc28143bf937ccf6e1316a05.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
相关文章
相关标签/搜索