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

WSL环境下Playwright调用SetInputFiles上传文件无法定位文件怎么办

WSL环境下Playwright文件上传路径配置方案
  • 核心逻辑前提:WSL内启动的Playwright拉起的浏览器进程运行在Linux子系统环境内,仅默认对WSL原生ext4文件系统路径有完整读写权限,/mnt/开头的Windows磁盘挂载路径存在跨系统权限映射问题,会出现无编辑权限、路径识别失败的情况,禁止作为测试上传文件的存储目录。
  • 正确的文件存放路径:直接在WSL用户家目录下创建专属测试文件目录即可,终端执行以下命令完成创建:
    mkdir -p ~/pw-upload-files
    chmod 755 ~/pw-upload-files
    
    所有待上传的测试文件统一放到/home/你的WSL用户名/pw-upload-files/路径下,该目录属于WSL原生文件系统,不存在权限映射问题。
  • SetInputFiles()方法正确用法:

    该API的实现逻辑是直接向文件输入框注入文件引用,完全绕开系统文件选择弹窗的交互流程,不需要提前点击上传按钮唤起文件选择窗口。如果代码运行时弹出了文件选择对话框,说明执行逻辑顺序有误。
    代码调用时直接传入WSL内部的文件绝对路径即可,C#版本示例如下:

    // 定位type为file的input元素,不要定位可见的上传按钮
    var fileInput = page.Locator("input[type='file']");
    // 传入WSL原生路径,禁止使用/mnt开头的挂载路径
    await fileInput.SetInputFilesAsync("/home/你的WSL用户名/pw-upload-files/测试文件.pdf");
    
  • 文件选择弹窗找不到文件夹问题说明:弹出的文件选择器是WSL侧Linux浏览器的原生组件,默认会隐藏部分系统级运行目录(包括node相关的运行时目录),且按照正确逻辑调用SetInputFiles()时不会触发该弹窗,不需要在弹窗内手动查找文件。
  • 快速校验方法:文件存入指定目录后,执行ls -l ~/pw-upload-files/确认目标文件对当前用户可读,即可保证上传逻辑正常运行,不会出现权限报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:12:31