碣滥 发表于 2025-6-7 16:12:32

selenium之三种弹框(alert、confirm、prompt)

弹框

WebDriver提供了一个API, 用于处理JavaScript提供的三种类型的原生弹窗消息. 这些弹窗由浏览器提供限定的样式.;分别为以下三种

[*]alerts警告框
[*]confirm确认框
[*]prompt提示框
话不多说,开始实践下就知道怎么一回事了
alerts

警告框,显示一条自定义信息,以及一个关闭按钮【一般是确定】;可以使用按钮进行关闭
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

serve_path = r'D:\Code_Study\driver\chromedriver-win64\chromedriver.exe'
service = Service(serve_path)
browser = webdriver.Chrome(service=service)
browser.get(f'https://www.selenium.dev/documentation/webdriver/interactions/alerts/')


# Alerts
# 等待元素可以被点击
alert_link = WebDriverWait(browser, 30).until(EC.element_to_be_clickable((By.LINK_TEXT, "See an example alert")))
alert_link.click()
# 切换到alert弹框并输出文本内容,点击确定
alert = browser.switch_to.alert
text = alert.text
print(text)
time.sleep(5)
alert.accept()confirm

确认框类似于警告框,不同之处在于用户还可以取消消息
# 等待元素可以被点击
alert_link = WebDriverWait(browser, 30).until(EC.element_to_be_clickable((By.LINK_TEXT, "See a sample confirm")))
alert_link.click()
# 下面这句话也是点击click,只不过用的js代码执行的
# browser.execute_script("arguments.click();", alert_link)
# 切换到confirm弹框并输出,点击确定
alert = browser.switch_to.alert
text = alert.text
print(text)
time.sleep(5)
alert.dismiss() prompt

提示框和确认框相似,但是它可以进行文本输入;
点击取消不会提交文本内容,点击确定才可以
这里有个坑,不知道是不是我找的这个网站问题;没办法输入文本内容;等到后面找到原因了,会来填坑的

# prompt
alert_link = WebDriverWait(browser, 30).until(EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, "prompt")))
# alert_link.click()
# 下面这句话也是点击click,只不过用的js代码执行的
browser.execute_script("arguments.click();", alert_link)
# 切换到prompt弹框并输出,点击确定
alert = browser.switch_to.alert
text = alert.text
print(text)
time.sleep(10)
alert.send_keys('hahaha')
time.sleep(10)
alert.accept()
browser.quit()
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

琉艺戕 发表于 2025-10-14 08:44:51

感谢发布原创作品,程序园因你更精彩

吉娅寿 发表于 2025-11-3 21:07:36

谢谢楼主提供!

骆贵 发表于 2025-12-5 18:17:11

感谢分享,下载保存了,貌似很强大

方方仪 发表于 2025-12-21 03:46:28

过来提前占个楼

辉伫 发表于 2026-1-3 13:49:05

东西不错很实用谢谢分享

吕梓美 发表于 2026-1-13 20:42:30

用心讨论,共获提升!

髡芯 发表于 2026-1-22 04:32:22

感谢分享,下载保存了,貌似很强大

各卧唯 发表于 2026-1-23 16:40:16

热心回复!

盒礁泅 发表于 2026-1-28 06:00:47

东西不错很实用谢谢分享

鞠彗云 发表于 2026-1-28 08:28:16

这个有用。

驼娑 发表于 2026-1-28 10:33:12

新版吗?好像是停更了吧。

蔬陶 发表于 2026-1-29 03:30:21

感谢分享,下载保存了,貌似很强大

米嘉怡 发表于 2026-1-31 11:32:33

谢谢楼主提供!

卓卞恻 发表于 2026-2-3 11:14:38

很好很强大我过来先占个楼 待编辑

盖彗云 发表于 2026-2-10 19:39:34

不错,里面软件多更新就更好了

僻嘶 发表于 2026-2-13 12:13:44

不错,里面软件多更新就更好了

豺独 发表于 2026-2-13 12:52:06

这个好,看起来很实用
页: [1]
查看完整版本: selenium之三种弹框(alert、confirm、prompt)