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

Selenium无可见input[type='file']元素时如何实现图片上传

解决方案

remove.bg 页面的文件上传 input 被设置了隐藏属性,默认不可交互,你不需要找到页面上可见的上传按钮,直接操作隐藏的 input 元素即可,操作步骤如下:

  • 先添加元素等待逻辑,避免页面未加载完成就定位元素导致报错
  • 通过 JS 脚本修改 input 元素的可见属性,解除隐藏限制
  • 直接给 input 元素传入本地图片的绝对路径完成上传

完整可运行代码

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

driver = webdriver.Firefox()
driver.get("https://www.remove.bg/upload")

# 等待文件上传input加载完成
upload_input = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, '//input[@type="file"]'))
)

# 用JS修改元素属性,解除隐藏
driver.execute_script("""
    arguments[0].style.display = 'block';
    arguments[0].style.visibility = 'visible';
    arguments[0].style.height = '1px';
    arguments[0].style.width = '1px';
    arguments[0].style.opacity = 1;
""", upload_input)

# 替换为你本地图片的绝对路径
upload_input.send_keys("/Users/xxx/Downloads/test.jpg")

注意事项

  • 图片路径请使用绝对路径,Windows 系统注意路径分隔符转义,或者直接用原生字符串
  • 如果你使用的是旧版本 Selenium,也可以保留原来的 find_element_by_xpath 写法,不需要引入 By 类
  • 不需要手动点击页面上的上传按钮,直接给 input 传值即可触发上传流程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:15:02