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

使用Selenium上传图片时路径输入成功但点击发送后图片未加载如何解决

问题原因分析

当前定位的是页面用于展示的伪文件输入框,仅作为前端交互展示层使用,不具备实际接收上传文件的能力。真正负责文件上传的是同组件下被隐藏的 <input type="file"> 元素,向伪输入框填入的路径不会被前端提交逻辑识别,因此触发提交后无文件上传。

解决方案步骤
  • 定位真实文件上传输入框
    优先通过父级文件选择器组件定位隐藏的type=file元素,避免和页面其他输入框混淆,Selenium 4+版本推荐使用标准定位写法,示例代码:
    from selenium.webdriver.common.by import By
    # 基于提供的文件选择器父元素class定位真实上传输入框
    real_file_input = driver.find_element(By.XPATH, '//div[contains(@class,"file-picker")]//input[@type="file"]')
    
  • 写入本地文件路径
    不需要点击触发系统文件选择弹窗,Selenium原生支持对type=file元素直接写入本地绝对路径完成文件选择:
    real_file_input.send_keys('C:/Users/on/Desktop/Proy/1.jpg')
    # 等待2秒确认前端识别到文件即可,无需过长等待
    time.sleep(2)
    
  • 触发提交操作
    完成路径写入后直接点击发送按钮即可完成正常上传。
异常场景排查
  • 若定位到的真实输入框提示元素不可交互,可先通过JS移除其隐藏属性后再操作:
    driver.execute_script("arguments[0].style.display = 'block'; arguments[0].style.visibility = 'visible';", real_file_input)
    
  • 确认上传的文件大小符合页面限制,组件提示文件需小于10MB,超出大小会被前端逻辑拦截导致上传失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:57:00