购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.9 警告框实战

WebDriver提供了多种定位警告框的方法,如接收警告框、取消警告框和获取警告框的文本信息等。当单击某个操作触发警告框弹出时,需要对警告框进行确定或取消操作。本案例中,使用switch_to.alert.text方法获取警告框对应的文本信息,如图2.29所示。

046-01.jpg

图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()方法取消警告框,此方法相当于警告框中的“取消”按钮操作,示例如下: O6xWdFyWMrak1/D56U3XDsV5G1uQB+1/7cf7RbUgvNz2ftvSoD0m5bMeJZ7WOB1F

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()
点击中间区域
呼出菜单
上一章
目录
下一章
×