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

如何使用Selenium选中Twitch页面的聊天输入框元素?

问题原因

  • 没有设置等待逻辑,Twitch直播页的聊天区域是异步渲染的,调用driver.get后直接查找元素时元素还未加载完成,会触发元素不存在报错
  • 旧版find_element_by_id方法在Selenium 4.0+版本中已被废弃,且当前Twitch前端结构中聊天输入框没有固定的chat-input的id属性,原有定位规则失效
  • 部分主播直播间会先弹出成熟内容确认弹窗,未处理弹窗的情况下也无法操作聊天输入框

正确实现代码

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

op = Options()
op.add_argument("user-data-dir=C:\\Users\\bestg\\AppData\\Local\\Google\\Chrome\\bor")
driver = webdriver.Chrome(options=op)
driver.get('https://www.twitch.tv/mizkif')

# 最多等待10秒,处理可能出现的成熟内容确认弹窗
try:
    confirm_btn = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.CSS_SELECTOR, '[data-a-target="content-classification-gate-overlay-start-watching-button"]'))
    )
    confirm_btn.click()
except:
    # 没有弹窗则跳过处理
    pass

# 等待聊天输入框加载完成且可点击
chat_input = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, '[data-a-target="chat-input"]'))
)
# 输入内容后加换行即可直接发送消息
chat_input.send_keys('hi\n')

注意事项

  • 确保你的Chrome浏览器和ChromeDriver版本完全匹配,避免版本不兼容导致的元素定位失败
  • 如果你的账号没有登录Twitch,部分直播间会限制未登录用户发送消息,建议先在你指定的用户数据目录下提前登录好Twitch账号
  • 不要频繁发送重复内容,避免触发Twitch的反爬机制导致账号被限制发言

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:54:02