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

如何在Selenium中自动关闭「打开Microsoft Teams?」浏览器弹窗?

如何在Selenium中自动关闭「打开Microsoft Teams?」浏览器弹窗?

嘿,这个问题我之前做Teams会议自动化的时候可踩过坑!那个弹窗其实是浏览器的外部应用协议请求提示,不是普通的JavaScript弹窗,所以用alert.accept()或者alert.dismiss()根本没用,得换思路来处理。

我整理了几种靠谱的解决方法,按推荐程度排序:

  • 方法一:提前配置浏览器,直接阻止弹窗出现
    这是最稳妥的方式,通过设置浏览器偏好,让它自动拒绝唤起Microsoft Teams桌面端的请求,不会再弹出询问框。

    如果你用的是Chrome/Edge(Chromium内核),可以这么写代码:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    chrome_options = Options()
    # 配置浏览器拒绝Teams协议的外部唤起
    browser_prefs = {
        "protocol_handler.excluded_schemes": {
            "msteams": True
        }
    }
    chrome_options.add_experimental_option("prefs", browser_prefs)
    
    # 初始化driver
    driver = webdriver.Chrome(options=chrome_options)
    # 现在打开你的会议链接,不会再弹那个框了
    driver.get("你的Teams会议链接")
    

    要是用Firefox的话,配置稍微有点不一样:

    from selenium import webdriver
    from selenium.webdriver.firefox.options import Options
    
    firefox_options = Options()
    # 禁止Firefox询问是否打开Teams
    firefox_options.set_preference("network.protocol-handler.warn-external.msteams", False)
    firefox_options.set_preference("network.protocol-handler.external.msteams", False)
    
    driver = webdriver.Firefox(options=firefox_options)
    driver.get("你的Teams会议链接")
    
  • 方法二:直接用Teams网页版链接绕过弹窗
    很多Teams会议链接其实都对应一个网页版入口,如果你不需要用桌面端,完全可以直接构造网页版的会议URL,这样从一开始就不会触发唤起桌面端的请求。比如把原链接里的唤起参数去掉,直接访问网页版的会议页面,自然就没弹窗了。

  • 不推荐的方法:模拟点击系统级弹窗
    要是上面两种方法都不适用,还有人会用AutoIt、PyAutoGUI这类工具模拟点击弹窗的「取消」按钮,但这种方式非常依赖系统环境(比如屏幕分辨率、弹窗位置),换个电脑可能就失效了,所以除非万不得已,尽量别用。

我自己平时用方法一最多,在Windows和Mac的Chrome上都测试过,基本能完美解决这个弹窗问题。如果是用Edge,因为是Chromium内核,直接套用Chrome的配置就行,完全通用。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 12:18:04