You need to enable JavaScript to run this app. 使用Python Selenium如何点击Discord页面底部的配置齿轮按钮
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Selenium如何点击Discord页面底部的配置齿轮按钮

Discord底部设置按钮点击失败解决方案

现有代码问题

  • 选择器不稳定:你使用的div#contents-18-Yxp属于Discord动态生成的带随机后缀的ID,每次版本更新、页面刷新都会变化,完全无法稳定匹配目标元素;a.item选择器过于宽泛,会优先匹配到侧边栏的频道、服务器等无关元素,根本不会点击到底部的设置按钮
  • 等待时长不足:Discord单页应用加载资源慢,5秒等待时间大概率不足以完成页面全部渲染,特别是未登录状态下会先跳转登录页,找不到目标按钮
  • 缺少登录逻辑:直接访问私有频道地址,未登录状态下会被重定向到登录界面,底部用户操作栏完全不会渲染

解决方法

  1. 先处理登录逻辑:可以先手动在Chrome里登录Discord后,通过配置用户数据目录复用登录态,避免每次启动都要重新登录
  2. 换用稳定的属性选择器:目标齿轮按钮的aria-label属性是固定值,中文界面为用户设置,英文界面为User Settings,用这个属性匹配不会随页面更新失效
  3. 延长等待时长,优先等待底部操作栏加载完成后再执行点击操作

修正后代码示例

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

option = Options()
option.add_argument("--no-sandbox")
# 可选:复用本地Chrome的用户数据,保留登录态,路径替换成你自己的Chrome用户数据路径
# option.add_argument(r"user-data-dir=C:\Users\你的用户名\AppData\Local\Google\Chrome\User Data")
driver = webdriver.Chrome(options=option)
driver.get("https://discord.com/channels/395582581124497408/395582581124497412")       
# 延长等待时长到20秒,给页面足够加载时间
wait = WebDriverWait(driver, 20)              
# 直接匹配目标设置按钮,中文界面用下面这行
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, 'button[aria-label="用户设置"]'))).click()
# 英文界面替换成下面这行
# wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, 'button[aria-label="User Settings"]'))).click()

目标按钮参考截图

配置按钮截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 08:21:00