在进行功能测试时 ,经常会遇到出现各种的弹出的提示 ,比如删除数据给出提示 、做某个操作时也会弹框给出一些友好提示 ,因为这些弹框都是做web操作时的一些常用组件 ,所以,selenium就不得不支持这些组件 。
1.弹框介绍
在web页面中 ,常见的弹框有提示框 、警告框、确认框 。它们的特性差不多但又不完全一样 。
-
警告框 :警告框一般只有一个确定按钮 ,面板上有一个小图标和一小段提示信息 。
-
确认框 :确认框有两个按钮 ,一个是确定按钮 ,一个是取消 ,一般是让用户做选择
-
提示框 :提示框也有两个按钮 ,一个是确定按钮 ,一个是取消 ,但同时它又可以让用户进行输入 。
2.selenium 弹框处理
在selenium中也有对应的弹框处理方法 ,具体是 :
# 1. 初始化弹出框对象
alert = driver.switch_to.alert
# 2.调用相应的方法
alert.text : 返回弹框(alert/confirm/prompt)中的文字信息
alert.accept() : 点击确定按钮
alert.dismiss() : 点击取消按钮
3.具体案例
接下来通过自己实现的一个弹框页面来进行演示 ,页面中有三个按钮 ,分别是警告框、确认框和提示框 ,点击后弹出对应的框 。
具体html代码为 :
html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Alert</title>
</head>
<body>
<input id = "alert" value = "警告框" type = "button" onclick = "alert('欢迎!请按确认继续!');"/>
<input id = "confirm" value = "确认框" type = "button" onclick = "confirm('确定吗?');"/>
<input id = "prompt" value = "提示框" type = "button" onclick = "var name = prompt('请输入你的名字:','请输入 你的名字'); document.write(name) "/>
</body>
</html>
针对以上的弹出 ,通过selenium实现一段代码 ,完成以上三个框的点击操作 。
# 弹框提示
"""
弹框 : 警告框 、确认框 、提示框
功能 :
text : 获取弹框上的文本内容
accept() : 点击确认
dismiss() : 点击取消
步骤:
1. 初始化对象 : alert = driver.switch_to.alert
2. 调用以上的属性或方法
"""
import time
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get(r"E:\弹框.html")
time.sleep(1)
# 创建alert对象
alert = driver.switch_to.alert
# 点击警告框
driver.find_element_by_id("警告框").click()
time.sleep(1)
# 获取警告框的文本信息
print("警告框的文本信息:{}".format(alert.text))
# 点击确认按钮
alert.accept()
time.sleep(2)
# 点击确认框
driver.find_element_by_id("确认框").click()
time.sleep(2)
alert.dismiss()
time.sleep(2)
# 点击提示框
driver.find_element_by_id("提示框").click()
time.sleep(2)
alert.send_keys("hello world")
time.sleep(2)
alert.accept()
time.sleep(2)