如何使用 Selenium Python 处理"插件已阻止"弹窗?
seleniumautomation testingtesting tools
我们可以使用 Python 中的 Selenium WebDriver 处理插件弹窗。当弹窗出现在页面上时,我们无法检查弹窗内的元素并进行识别。
此外,为了访问页面上的其他元素,我们必须首先接受默认的页面访问权限。要与弹窗交互,我们必须借助 `switch_to.alert()` 方法显式地将驱动程序焦点转移到弹窗。
弹窗主要包含一条消息以及用于接受和关闭弹窗的"确定"和"取消"按钮。要接受弹窗,可以使用 `switch_to.alert().accept()` 方法。
要关闭弹窗,可以使用 `switch_to.alert().dismiss()` 方法。
要获取弹出窗口中的文本,我们需要使用 `switch_to.alert().text` 方法。语法
driver.switch_to.alert.text driver.switch_to.alert.accept() driver.switch_to.alert.dismiss()
让我们尝试获取弹出窗口中的文本。

示例
from selenium import webdriver
from selenium.webdriver.common.alert import Alert
# 设置 ChromeDriver.exe 路径
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
driver.implicitly_wait(0.5)
# 启动 URL
driver.get("http://www.uitestpractice.com/Students/Switchto")
# 识别元素
m = driver.find_element_by_id("confirm")
m.click()
# 切换到弹出窗口
driver.switch_to.alert
# 获取文本
p = driver.switch_to.alert.text
print("文本为:")
print(p)
# 接受弹出窗口
driver.switch_to.alert.accept()
m.click()
# 关闭弹出窗口
driver.switch_to.alert.dismiss()
# 关闭浏览器
driver.close()
输出


