WebDriver提供了多种定位警告框的方法,如接收警告框、取消警告框和获取警告框的文本信息等。当单击某个操作触发警告框弹出时,需要对警告框进行确定或取消操作。本案例中,使用switch_to.alert.text方法获取警告框对应的文本信息,如图2.29所示。
图2.29 警告框信息界面
示例如下:
from selenium import webdriver from time import sleep # 鼠标指标悬停类 from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.support.select import Select dr = webdriver.Chrome() dr.get("https://www.baidu.com") setting = dr.find_element_by_link_text("设置") ActionChains(dr).move_to_element(setting).perform() sleep(1) dr.find_element_by_link_text("搜索设置").click() sleep(5) # 选择简体中文 dr.find_element_by_id("SL_1").click() sleep(3) # 下拉框的操作 select = dr.find_element_by_xpath("//select[@id='nr']") Select(select).select_by_value("20") sleep(3) # 保存设置 dr.find_element_by_class_name("prefpanelgo").click() # 输出警告信息 alert_text = dr.switch_to.alert.text print(alert_text)
使用switch_to.alert.accept()方法接收警告框,此方法相当于单击警告框中的“确认”按钮操作,示例如下:
from selenium import webdriver from time import sleep from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.support.select import Select dr = webdriver.Chrome() dr.get("https://www.baidu.com") setting = dr.find_element_by_link_text("设置") # 定位到“设置” ActionChains(dr).move_to_element(setting).perform() # 鼠标指针悬停设置选项 sleep(1) dr.find_element_by_link_text("搜索设置").click() # 单击“搜索设置”超链接 sleep(5) dr.find_element_by_class_name("prefpanelgo").click() # 单击保存设置 dr.switch_to.alert.accept() # 确认警告框操作
使用switch_to.alert.dismiss()方法取消警告框,此方法相当于警告框中的“取消”按钮操作,示例如下:
from selenium import webdriver from time import sleep from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.support.select import Select dr = webdriver.Chrome() dr.get("https://www.baidu.com") setting = dr.find_element_by_link_text("设置") ActionChains(dr).move_to_element(setting).perform() sleep(1) dr.find_element_by_link_text("搜索设置").click() sleep(5) # 保存设置 dr.find_element_by_class_name("prefpanelgo").click() # 拒绝警告框 dr.switch_to.alert.dismiss()