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

使用Selenium Python上传本地文件报ElementNotInteractableException如何解决

问题根因

你当前定位的元素是span类型的视觉图标,Selenium的send_keys传入本地文件路径的操作仅支持对<input type="file">类型的文件上传专用元素生效,span元素本身不支持接收文件输入,因此触发元素不可交互报错。

修复方案

  • 第一步:定位页面中实际的文件上传元素,优先查找标签为input、属性type="file"的元素,大部分场景下该元素会被前端设置为隐藏,无需提前点击唤起文件选择框。
  • 第二步:如果元素处于隐藏状态,可通过执行JS脚本解除隐藏后,再传入文件路径,示例代码如下:
# 定位文件上传专用input元素,可根据实际页面的id、class或父级关系调整选择器
file_input = driver.find_element(By.CSS_SELECTOR, 'input[type="file"]')
# 若元素隐藏,执行JS设置为可见
driver.execute_script("arguments[0].style.display = 'block'; arguments[0].style.opacity = '1';", file_input)
# 传入本地文件路径,建议用原始字符串避免转义问题
file_input.send_keys(r"C:\Users\deepa\Downloads\deepak_1.png")

注意事项

  • 若页面存在多个type="file"的元素,可补充其他属性缩小定位范围,比如input[type="file"][name="upload_img"],避免定位到错误元素。
  • 不需要额外点击span类型的上传图标,直接对file input元素传路径即可完成上传操作。

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

相关产品推荐
方舟 Agent Plan

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

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