在进行功能测试时 ,经常会遇到出现各种的弹出的提示 ,比如删除数据给出提示 、做某个操作时也会弹框给出一些友好提示 ,因为这些弹框都是做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.alert2. 调用以上的属性或方法
"""
import timefrom selenium import webdriver
from time import sleepdriver = 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)