背景:
在web自动化测试时,会有在某个操作后出现警告弹窗,如下图:
webdriver提供的解决方法:
对于警告框的处理,selenium webdriver提供相应的方法:
# webdriver处理目标切换到警告框,并返回一个alert对象
alert = webdriver.switch_to.alert()
# 返回警告框中的提示信息
alert.text
# 接受警告框,相当于在警告框上点击确认
alert.accept()
# 解散现有警告框,相当于在警告框出现时,按ESC键
alert.dismiss()
# 向警告框中输入文本,如果其支持的话
alert.send_keys(text)
示例:
from selenium import webdriver
from time import sleep
chrome_driver = r'D:\Python3.7\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe'
driver = webdriver.Chrome(executable_path = chrome_driver)
driver.implicitly_wait(3)
url = r'http://www.airchina.com.cn/'
driver.get( url )
# 点击【查询预定】按钮,此时会触发警告框
driver.find_element_by_id('portalBtn').click()
# webdriver处理目标切换到警告框
alert = driver.switch_to.alert
# 打印警告框信息
print(alert.text)
# 接受警告框,相当于在警告框上点击确认
#alert.accept()
# 解散现有警告框,相当于在警告框出现时,按ESC键
alert.dismiss()
sleep(2)
driver.quit()
# ==============================
stdout: 很抱歉!您没有输入出发机场!请重新输入
# ==============================