如何使用 Python 从 Selenium 中的 JavaScript 警报中提取文本?

selenium web driverautomation testingsoftware testing更新于 2026/2/14 14:22:17

我们可以借助 Alert 类下的 text 方法从 JavaScript 警报中提取文本。警报本质上是浏览器弹出窗口,触发这些窗口是为了关闭或接受输入的数据。

所有这些操作都是由 Selenium 在 selenium.webdriver.common.alert.Alert(driver) 类的帮助下执行的。该类具有提取特定警报文本、接受和关闭浏览器弹出窗口的方法。

警报中的元素无法通过简单地从 HTML 代码中识别出来。这是因为这些元素被认为是由 JavaScript 实现的。

Selenium 警报方法如下 −

  • accept() –此方法接受一个 alert 弹窗。

语法 −

a = Alert(driver)
a.accept()
  • dismiss() – 此方法关闭一个 alert 弹窗。

语法 −

a = Alert(driver)
a.dismiss()
  • send_keys(value) –此方法在弹出的警报窗口中输入文本。

语法 −

a = Alert(driver)
a.send_keys("Yes")
  • text  – 此方法从弹出的警报窗口中提取文本。

语法 −

a = Alert(driver)
print(a.text)
  • switch_to.alert –此方法将焦点切换到警报。

语法 −

a = driver.switch_to.alert

示例

从警报中提取文本的代码实现。

from selenium import webdriver
from selenium.webdriver.common.alert import Alert
#浏览器公开一个可执行文件
#通过Selenium测试,我们将调用该可执行文件,然后#调用实际的浏览器
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
#最大化浏览器窗口
driver.maximize_window()
#获取方法启动URL
driver.get("https://www.tutorialspoint.com/selenium/selenium_automation_practice.htm")
#刷新浏览器
driver.refresh()
#点击提交按钮
driver.find_element_by_xpath("//button[@name='submit']").click()
a = driver.switch_to.alert
#在控制台中打印警告文本
print(a.text)
#关闭警告弹窗
a.dismiss()
#关闭浏览器
driver.close()

相关文章