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

如何使用Selenium点击Twitch平台离线用户的头像跳转至对应录播页

问题定位

你原有代码无法执行点击的核心原因是定位器逻辑错误:By.LINK_TEXT仅能匹配HTML中<a>标签包裹的可见文本内容,::before是CSS伪元素,不属于可被该方法匹配的文本范畴,所以根本无法定位到目标头像元素。

解决方案

Twitch离线用户主页的可点击头像,可通过CSS选择器精准定位:头像内部的<img>标签的alt属性固定为对应用户的Twitch用户名,和页面路径中的用户名一致,稳定性远高于匹配动态类名。如果遇到元素被页面层级遮挡导致普通click()失效的情况,调用JavaScript执行点击兼容性更好。

修正后完整代码
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

op = Options()
# 注意替换为你自己的Chrome用户数据路径
op.add_argument("user-data-dir=C:\\Users\\bestg\\AppData\\Local\\Google\\Chrome\\bor")
driver = webdriver.Chrome(options=op)
target_url = 'https://www.twitch.tv/mizkif'
driver.get(target_url)

# 从url提取用户名,拼接定位选择器
username = target_url.strip('/').split('/')[-1]
avatar_selector = f"img[alt='{username}']"

# 等待头像元素加载完成
avatar_img = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, avatar_selector)))
# 用JS执行点击,避免元素遮挡导致的点击失效
driver.execute_script("arguments[0].click();", avatar_img)
注意事项
  • 如果Twitch后续更新了页面结构导致alt属性规则变化,可以替换为匹配头像外层<a>标签的选择器,比如a:has(figure.tw-avatar),注意需要Selenium 4.0+版本支持:has伪类
  • 代码中的Chrome用户数据路径需要替换为你本地实际路径,也可以去掉该参数使用无痕模式运行

内容的提问来源于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 10:45:00