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

除sendKeys外,向网站上传文件还有哪些可行的实现方法?

remove.bg上传场景下无可见input的sendKeys上传解决方案

方案1:直接调用隐藏input元素上传

remove.bg的上传页面并非没有input[type="file"]标签,只是默认设置了隐藏属性(opacity:0或display:none)不会在页面中可见,你可以直接定位该元素完成上传:

  • 用CSS选择器input[type="file"]即可定位到对应的上传元素
  • 大部分自动化测试框架(Selenium、Playwright、Appium等)均支持直接对隐藏的文件输入框调用sendKeys方法,直接传入本地图片的绝对路径即可完成上传,无需提前修改元素的可见属性
  • 如果你的框架不支持操作隐藏元素,可执行下方JS代码先将元素改为可见状态再操作:
    document.querySelector('input[type="file"]').style.cssText = 'display:block !important; opacity:1 !important; position:fixed; z-index:9999; top:0; left:0; width:100px; height:100px;'

方案2:模拟拖放事件上传

如果定位input元素的方案无法生效,你可以通过模拟文件拖放的逻辑触发上传:

  • 第一步定位页面的上传区域容器(通常是提示点击上传的整块区域)
  • 第二步构造DataTransfer对象写入本地文件信息,再触发上传容器的drop事件即可,以下为Selenium Python示例代码:
from selenium import webdriver
import os

driver = webdriver.Chrome()
driver.get("https://www.remove.bg/upload")
# 替换为你的本地图片路径
local_img_path = os.path.abspath("your_image.png")
# 定位上传区域
upload_area = driver.find_element("css selector", ".upload-box")

# 执行JS模拟拖放上传
driver.execute_script("""
const targetEl = arguments[0];
const filePath = arguments[1];
// 构造文件对象和拖放事件
const dataTransfer = new DataTransfer();
dataTransfer.items.add(new File([], filePath, {type: 'image/*'}));
targetEl.dispatchEvent(new DragEvent('drop', {
    bubbles: true,
    cancelable: true,
    dataTransfer: dataTransfer
}));
""", upload_area, local_img_path)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:24:03