selenium_Alert
网页测试,最避免不了的就是弹出框,但是弹出框你真的分的清吗?
- Alert
- prompt
- comfirm
先来认识一下这三个弹窗
代码如下
<input id="alert" onclick="alert('这是一个alert')" type="button" value="alert" />
<input id="confirm" onclick="confirm('确定?');" type="button" value="confirm" />
<input id="prompt" onclick="var name = prompt('请输入你的名字:','请输入你的名字'); document.write(name) " type="button" value="prompt" />
OK,下面来看看如何处理他们
1.导入包,和导入ActionChains类似
from selenium.webdriver.common.alert import Alert
2.四种操作
- alert.text 获取弹出框的文本
- alert.dismiss() 拒绝警告框,点击取消或者右上角X关闭
- alert.accept() 接受警告框,点击确定
- alert.send_keys(value) 模拟输入,向prompt的文本框输入字符
3.实战
1 from selenium import webdriver 2 from selenium.webdriver.common.alert import Alert 3 import time 4 5 driver=webdriver.Firefox() 6 driver.get("File://E:/python/alert/alert.html") 7 time.sleep(2) 8 pop=Alert(driver) #和ActionChains一样,需要初始化alert的驱动 9 10 #Alert 11 driver.find_element_by_id("alert").click() 12 print("alert",pop.text) #获得alert弹框的内容 13 time.sleep(1) 14 pop.accept() #点击确定 15 16 ''' 17 权限验证 18 有时在弹出框内需要验证我们的权限,即输入账号密码 19 可以使用authenticate(username, password)的方法 20 ''' 21 22 #confirm 23 time.sleep(2) 24 confirm=driver.find_element_by_id("confirm") 25 confirm.click() 26 print("confirm accept",pop.text) #获得alert弹框的内容 27 pop.accept() #点击确定 28 time.sleep(2) 29 30 confirm.click() 31 time.sleep(2) 32 print("confirm dismiss",pop.text) 33 pop.dismiss() #点击取消 34 time.sleep(2) 35 36 #prompt 37 driver.find_element_by_id("prompt").click() 38 print("prompt",pop.text) #获得alert弹框的内容 39 pop.send_keys("lalala") #输入文字 40 time.sleep(3) 41 pop.accept() 42 43 driver.close()