UI自动化测试-Alert类的方法
Alert类的方法
1、我们为什么要使用Alert类来定位?
因为,在UI的自动化测试实战中,页面有时会弹出框,这时候我们右击鼠标,并进行检查,我们是无法进行检查这一操作,因而也就无法用我们之前的方法进行定位,这时我们就要使用的是Alert的类这部分。
我们要使用Alert类,首先要导入它,它的命令为:
from selenium.webdriver.common.alert import 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()