You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Selenium Python处理Telegram页面的Alert弹窗?

解决Telegram自定义弹窗无法用Selenium Alert类关闭的问题

问题原因

你遇到的NoAlertPresentException是因为当前页面的弹窗不是浏览器原生的JavaScript Alert,而是Telegram页面自定义的模态框。Selenium的Alert类仅能识别原生弹窗,因此调用alert.dismiss()会触发报错。

解决方案

改用Selenium的元素定位方法,直接找到弹窗的关闭按钮并点击:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

# 等待弹窗加载完成(最多等待10秒)
close_btn = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, "//button[contains(text(), '取消')]"))  # 根据弹窗实际按钮文本调整
)
close_btn.click()

注意事项

  • 如果上述XPATH定位不到按钮,打开浏览器开发者工具(F12),查看弹窗关闭按钮的HTML属性(比如class、id)替换定位器。例如若按钮有class="tgme_page_action_btn",可改用:
    EC.element_to_be_clickable((By.CLASS_NAME, "tgme_page_action_btn"))
    
  • 确保等待时间足够,避免因弹窗未加载完成导致元素找不到的问题。

内容的提问来源于stack exchange,提问作者AntonioFrank

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 03:41:40