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

Python Selenium点击Instagram粉丝按钮XPath定位错误如何解决

问题修复方案

报错核心原因

  • 你使用的绝对XPath路径稳定性极差,Instagram的前端页面结构会频繁迭代,只要DOM层级稍有变动,路径就会失效
  • 硬等待sleep(1)不可靠,个人主页资源未完全加载完成就执行元素定位,自然找不到目标元素
  • 后续代码还存在方法名拼写错误:get_attribure正确写法是get_attribute,即便定位到元素也会抛出异常

修复方案

  1. 替换绝对XPath为更稳定的相对定位,利用粉丝按钮的文本、href属性特征匹配,避免依赖DOM层级结构
  2. 替换硬等待为Selenium显式等待,主动监听元素加载状态,加载完成后再执行操作
  3. 修正方法名拼写,适配高版本Selenium的API规范

修正后代码

# 提前导入显式等待相关依赖
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

def followers(self):
    self.browser.get("https://www.instagram.com/" + instagramLoginInfo.username +"/")
    # 最长等待10秒,直到粉丝按钮可点击
    wait = WebDriverWait(self.browser, 10)
    # 用href属性匹配定位粉丝按钮,兼容多语言界面
    followerslink = wait.until(EC.element_to_be_clickable((By.XPATH, '//a[contains(@href, "/followers/")]')))
    followerslink.click()

    # 等待粉丝列表弹窗加载完成
    followers_list = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "div[role=dialog] ul")))
    followers = followers_list.find_elements(By.CSS_SELECTOR, "li")

    for user in followers:
        link = user.find_element(By.CSS_SELECTOR, "a").get_attribute("href")
        print(link)

额外注意事项

  • 运行前请确认账号已正常登录,没有触发登录校验、人机验证,否则页面结构不符依然会定位失败
  • 你原先使用的find_element_by_xpath这类方法在Selenium 4.0+版本已被废弃,统一用find_element(By.定位类型, 路径)的写法兼容性更好

内容的提问来源于stack exchange,提问作者Umutcan Adıgüzel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:06:05