1.弹窗类型
浏览器的弹窗有三种:
1.仅为提示弹窗,显示提示信息后点击确定关闭:
2.选择“确定”或“取消”按钮关闭的弹窗:
3.输入文本后点击确定按钮关闭的弹窗:
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()