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

如何用Selenium为Aparat视频点赞?XPath定位问题求助

解决Aparat视频点赞按钮定位问题

你的问题出在固定层级的XPath太脆弱,页面结构稍有变动就会失效,而且硬编码sleep也不是可靠的等待方式。试试下面的优化方案:

1. 优化后的代码实现

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
from selenium.webdriver.common.action_chains import ActionChains
from webdriver_manager.chrome import ChromeDriverManager

# 初始化浏览器
driver = webdriver.Chrome(executable_path=ChromeDriverManager("122.0.6261.95").install())
driver.get("https://www.aparat.com/v/T8gqi?playlist=1869949")

# 显式等待点赞按钮加载完成(最长等待10秒)
wait = WebDriverWait(driver, 10)
# 基于按钮的aria-label属性定位(适配Aparat的波斯语按钮)
like_button = wait.until(EC.element_to_be_clickable((By.XPATH, '//button[contains(@aria-label, "لایک")]')))

# 滚动到按钮所在位置,确保元素可见
driver.execute_script("arguments[0].scrollIntoView();", like_button)

# 执行点击操作
ActionChains(driver).move_to_element(like_button).click().perform()

# 可选:操作完成后关闭浏览器
# driver.quit()

2. 核心优化说明

  • 替换脆弱的层级XPath:用contains(@aria-label, "لایک")定位,只要按钮的功能属性不变,不管页面结构怎么调整都能找到目标元素
  • 用显式等待替代固定sleep:WebDriverWait会自动等待元素可点击后再执行操作,比固定等待时间更高效、更稳定
  • 强制滚动到元素可见:部分按钮可能初始在视口外,需要先滚动到可见区域才能触发点击

3. 额外排查方向

如果还是无法定位元素,检查以下两种情况:

  • 是否需要登录:Aparat的点赞功能可能需要账号登录,未登录状态下按钮的结构或可点击性会变化
  • 是否存在iframe嵌套:如果点赞按钮在iframe内部,需要先切换到对应iframe再执行定位操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 00:52:17