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

Python Selenium网站自动附件上传问题:点击按钮自动填入文件路径

解决网站附件自动上传问题

你当前的核心问题是:直接给自定义上传按钮(sp-attachment-button组件内的button元素)发送文件路径无效。这类自定义按钮只是触发文件选择对话框的交互层,真正负责接收上传请求的是页面中隐藏的input[type="file"]元素。

解决思路

  • 跳过点击自定义按钮的步骤,直接定位页面中的input[type="file"]元素
  • 对该元素调用send_keys()传入文件路径,Selenium会自动触发上传流程,无需手动选择文件

修改后的代码示例

# Add Attachments
try:
    if any(item == 'Financial Systems' for item in ACselection[:2]):
        # 定位关联的file input元素,需根据实际页面DOM结构调整XPATH
        file_input = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="catItemTop"]/div/div[3]/div/label/sp-attachment-button//input[@type="file"]')))
        
        # 若元素处于隐藏状态,可通过JS强制设置可见(部分网站需要此步骤)
        # driver.execute_script("arguments[0].style.display = 'block';", file_input)
        
        # 直接传入文件路径触发上传
        file_input.send_keys(filePath)
except Exception as e:
    # 可选:添加异常打印便于调试
    print(f"附件上传失败: {str(e)}")

注意事项

  • 若找不到input[type="file"]元素,打开浏览器开发者工具(F12),在上传按钮的父节点附近查找,或在弹出文件选择框时检查DOM变化
  • 多数情况下,即使input元素是隐藏状态,直接调用send_keys()依然有效;若无效,再执行JS修改元素样式使其可见

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 00:00:11