1.弹窗类型

浏览器的弹窗有三种:

1.仅为提示弹窗,显示提示信息后点击确定关闭:

python 处理弹窗 python弹窗代码_封装

2.选择“确定”或“取消”按钮关闭的弹窗:

python 处理弹窗 python弹窗代码_python 处理弹窗_02

3.输入文本后点击确定按钮关闭的弹窗:

python 处理弹窗 python弹窗代码_封装_03

2.解决方案

针对以上三种弹窗,都有不同的解决方案。

首先,我们都需要切换到弹窗模块,对弹窗进行操作:

alert_element = driver.switch_to.alert

然后根据类型的不同,有不同的操作代码:

仅是提示框的弹窗,只需要点击确定按钮,即可关闭:

alert_element.accept()

有确定或取消选项的,根据自身需求确定要点击哪个按钮:

# 点击确定按钮
alert_element.accept()
# 点击取消按钮
alert_element.dismiss()
需要输入文字后点击确定按钮
# 向弹窗内发送文字 “test”
alert_element.send_keys(‘test’)
alert_element.accept()

3. 一个简单的封装

我们将以上的方法封装成一个函数:

def switch_alert(self, option, input_str = None):
'''

对系统弹窗做出操作:

1.只有弹窗,点击确定关闭

2.有确认或取消两个按钮,选择按钮后关闭

3.有输入框的弹窗,输入文字后点击确定按钮关闭

:param option: 点击“确认”或“取消”
:param input_str: 输入的字符
'''
alert = self.driver.switch_to.alert
if option == 'accept':
if input_str != None:
alert.send_keys(input_str)
alert.accept()
else:
alert.accept()
else:
alert.dismiss()