ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

UI自动化测试-Alert类的方法

2022-06-28 19:34:40  阅读:159  来源: 互联网

标签:webdriver import driver Alert UI 自动化 sleep alert selenium


Alert类的方法

1、我们为什么要使用Alert类来定位?

因为,在UI的自动化测试实战中,页面有时会弹出框,这时候我们右击鼠标,并进行检查,我们是无法进行检查这一操作,因而也就无法用我们之前的方法进行定位,这时我们就要使用的是Alert的类这部分。

2、Alert类的方法

在Alert的类里面,涉及到的方法以及方法的作用主要汇总为如下:

text:获取弹出框的文本信息

accept是接受Confirm弹出框

dismiss是拒绝接受Confirm弹出框

send_keys是在Prompt消息对话框里面输入想要输入的内容

3、各种方法实战如下

类型1:警告框,如下图:

首先,在桌面新建一个"警告框(1).html",内容如下:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <script type="text/javascript">
 7         alert("这是一个警告框!")
 8     </script>
 9 </head>
10 <body>
11 </body>
12 </html>

 然后我们通过 ,text:获取弹出框的文本信息来定位:

 1 from selenium import webdriver  #包:selenium,模块:webdriver
 2 from selenium.webdriver.common.alert import Alert
 3 from selenium.webdriver.common.by import By
 4 import  time as t
 5 # text:获取弹出框的文本信息
 6 driver=webdriver.Chrome()
 7 driver.maximize_window()
 8 driver.get("file:///C:/Users/Administrator/Desktop/%E8%AD%A6%E5%91%8A%E6%A1%86(1).html")
 9 print(driver.switch_to.alert.text)  # text:获取弹出框的文本信息
10 t.sleep(2)
11 driver.quit()

类型2:确定消息框,如下图:

首先,在桌面新建一个"确定消息(1).html",内容如下:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <script type="text/javascript">
 7         function disp_confirm()
 8         {
 9             var r=confirm("请您点击按钮!")
10             if(r==true)
11             {
12                 document.write("您点击了确认按钮")
13             }
14             else
15             {
16                 document.write("您点击了取消按钮")
17             }
18         }
19     </script>
20 </head>
21 <body>
22 <center>
23     <input type="button" onclick="disp_confirm()" value="请点击">
24 </center>
25 </body>
26 </html>

 然后我们通过,accept是接受Confirm弹出框、dismiss是拒绝接受Confirm弹出框和refresh来定位:

 1 from selenium import webdriver  #包:selenium,模块:webdriver
 2 from selenium.webdriver.common.alert import Alert
 3 from selenium.webdriver.common.by import By
 4 import  time as t
 5 driver=webdriver.Chrome()
 6 driver.maximize_window()
 7 driver.get("file:///C:/Users/Administrator/Desktop/%E7%A1%AE%E5%AE%9A%E6%B6%88%E6%81%AF(1).html")
 8 driver.find_element(By.XPATH,'/html/body/center/input').click()
 9 t.sleep(2)
10 driver.switch_to.alert.accept() 
11 t.sleep(2)
12 driver.refresh()
13 driver.find_element(By.XPATH,'/html/body/center/input').click()
14 t.sleep(2)
15 driver.switch_to.alert.dismiss()
16 t.sleep(2)
17 driver.quit()

类型3:消息对话框,如下图:

首先,在桌面新建一个"消息对话框(1).html",内容如下:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <script type="text/javascript">
 7         function disp_prompt()
 8         {
 9             var name=prompt("请输入您的姓名:","")
10             if(name!=null && name!="")
11             {
12                 document.write("Hello "+name+"!")
13             }
14         }
15     </script>
16 </head>
17 <body>
18 <center>
19     <input type="button" onclick="disp_prompt()" value="请点击我!">
20 </center>
21 </body>
22 </html>

然后我们通过,send_keys是在Prompt消息对话框里面输入想要输入的内容、accept是接受Confirm弹出框、dismiss是拒绝接受Confirm弹出框和refresh来定位:

 1 from selenium import webdriver  #包:selenium,模块:webdriver
 2 from selenium.webdriver.common.alert import Alert
 3 from selenium.webdriver.common.by import By
 4 import  time as t
 5 driver=webdriver.Chrome()
 6 driver.maximize_window()
 7 driver.get("file:///C:/Users/Administrator/Desktop/%E6%B6%88%E6%81%AF%E5%AF%B9%E8%AF%9D%E6%A1%86(1).html")
 8 t.sleep(2)
 9 driver.find_element(By.XPATH,'/html/body/center/input').click()
10 t.sleep(2)
11 driver.switch_to.alert.send_keys("黛西")
12 t.sleep(2)
13 driver.switch_to.alert.accept()
14 t.sleep(2)
15 driver.refresh()
16 t.sleep(2)
17 driver.find_element(By.XPATH,'/html/body/center/input').click()
18 t.sleep(2)
19 driver.switch_to.alert.send_keys("黛西")
20 t.sleep(2)
21 driver.switch_to.alert.dismiss()
22 t.sleep(2)
23 driver.quit()

标签:webdriver,import,driver,Alert,UI,自动化,sleep,alert,selenium
来源: https://www.cnblogs.com/wangwt123/p/16420708.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有