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()
弹出框测试