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

使用Selenium开发Twitter自动发推脚本无法定位媒体按钮XPath是什么原因?

问题核心原因

  1. 操作逻辑错误:你点击媒体按钮后弹出的Windows资源管理器属于系统级窗口,Selenium无法控制系统级弹窗,点击操作属于多余步骤,会直接阻断后续执行。文件上传无需触发点击操作,直接给隐藏的input元素传本地路径即可。
  2. 定位规则不稳定:你使用的绝对路径XPath容错率极低,Twitter前端结构更新、页面未完全渲染、有其他弹窗遮挡都会触发no such element报错。

修复方案

替换原有的点击+睡眠逻辑,改用显式等待定位更稳定的媒体上传input元素,直接传入图片路径:

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

# 最多等待10秒,直到上传input元素加载完成
upload_input = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, "//input[@type='file' and contains(@accept, 'image')]"))
)
# 传入本地图片的绝对路径,多图上传用换行符分隔多个路径即可
upload_input.send_keys("C:\\你的图片本地完整路径.png")

注意事项

  • 传入的图片路径必须是本地绝对路径,不能使用相对路径。
  • 不需要再手动点击媒体按钮,Selenium会自动完成文件选中关联操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:54:08