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

使用Selenium与undetected_chromedriver无法点击Google Meet按钮的问题

问题:无法用Selenium点击Google Meet的“不使用麦克风继续”按钮

尝试多种定位方式均无法点击该按钮,Selenium IDE中可成功点击,但转换为Python代码后失效。按钮截图如下:
Google Meet麦克风权限确认按钮

附带疑问:开启--disable-notifications参数后,完全无法进入Google Meet,这是为什么?

当前代码

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

options = webdriver.ChromeOptions()
options.add_argument('--no-default-browser-check')
options.add_argument('--safebrowsing-disable-download-protection')
options.add_argument('--disable-popup-blocking')
options.add_argument('--disable-web-security')
options.add_argument('--no-sandbox')
#options.add_argument("--disable-infobars")
#options.add_argument("--disable-notifications") #开启该参数无法进入Google Meet,原因不明
driver = uc.Chrome(options=options)
driver.get('https://meet.google.com/oqm-zoqm-wmx')
try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, ".VfPpkd-ksKsZd-mWPk3d-OWXEXe-Tv8l5d-lJfZMc > .VfPpkd-vQzf8d"))
    )
    element.click()

except Exception as e:
    print(f"{str(e)}")

finally:
    while True:
        pass

解决方案

1. 替换不稳定的CSS选择器

Google的动态类名(如VfPpkd-xxx)会频繁变更,这是定位失效的核心原因,改用以下稳定定位方式:

  • 按按钮文本定位:
    element = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.XPATH, "//span[contains(text(), '不使用麦克风继续')]"))
    )
    element.click()
    
  • 按aria属性定位:
    查看按钮的aria-label属性,直接定位:
    element = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.CSS_SELECTOR, "button[aria-label='不使用麦克风继续']"))
    )
    element.click()
    

2. 等待元素可点击而非仅存在

原代码使用presence_of_element_located仅保证元素存在于DOM,但可能未加载完成或处于不可点击状态,替换为element_to_be_clickable更可靠。

3. 关于--disable-notifications的问题

Google Meet会通过通知权限状态验证环境合法性,直接禁用通知会触发反检测机制,导致无法进入会议。建议:

  • 不要禁用该参数;
  • 若需屏蔽弹窗,改用--disable-notifications-popup参数,保留权限状态检测。

4. 优化ChromeOptions参数

移除可能破坏安全验证的参数,保留必要配置即可:

options = webdriver.ChromeOptions()
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--start-maximized')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 18:13:34