弹出框的处理

警告框也叫做对话框,是由网页中的js控制弹出来的,一般用于显示一段文字,等待用户点击确认或者输入一些内容。如果自动化测试过程中遇到了警告框该如何处理呢?

在WebDriver中,已经提供了处理JavaScript所生成的alert、confirm、prompt的方法,就是使用switch_to.alert()方法:

上面就是常用的几种alert处理方法,包括接受、取消、获取alert的文本内容等。

来看一个Alert实例:

点击Click For Alert,弹出一个警告框:

这就是弹出告警框实例,点击确定按钮,告警框就小时,页面回复交互。网页空白处,点击查看这个网页的源码:

其中,有4个input,一个text类型,3个button类型,这3个button就对应上面3个Alert测试按钮。现在我们用脚本来完成显示Alert,获取其中文本的操作。

from selenium import webdriver
from time import sleep

driver = webdriver.Firefox()
driver.get("file:///D:/alert.html")

# 点击第一个Alert按钮
driver.find_element_by_xpath("//input[@name='b1']").click()
# 等待1s,显示Alert
sleep(1)
text = driver.switch_to.alert.text
print(text)

可以看到,打开网页后,b1按钮被点击,并显示了Alert,Console显示结果为:

如上结果, Alert Message 被打印出来,正是前面Alert弹出的文本内容。

现在,模拟操作对话,点击确认或者取消,实例代码:

from selenium import webdriver
from time import sleep

driver = webdriver.Firefox()
driver.get("file:///D:/alert.html")

# 点击第一个Alert按钮
driver.find_element_by_xpath("//input[@name='b1']").click()
# 等待1s,显示Alert
sleep(1)
text = driver.switch_to.alert.text
print(text)

# 添加确认、取消操作
# driver.switch_to.alert.accept()
driver.switch_to.alert.dismiss()

最后

Alert其实是一个前端知识,这就需要同学们了解一定的前端知识,才能更好地明白alert的操作。

IT赶路人

专注IT知识分享