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

Android环境下使用ChromeDriver上传图片的问题求助

解决Android ChromeDriver图片上传失败的问题

我之前也踩过这个坑,结合实际调试经验给你几个可行的解决方案:

1. 先确认ChromeDriver与Android Chrome版本严格匹配

这是最容易被忽略的核心前提!ChromeDriver的版本必须和你设备上Chrome的大版本完全一致(比如Chrome是118.x,ChromeDriver就得用118.x的对应版本)。版本不兼容会触发各种莫名其妙的权限、路径错误,你可以在Chrome里输入chrome://version查看具体版本,再下载对应版本的ChromeDriver。

2. 确保定位到正确的<input type="file">元素

你得保证sendKeys是调用在真正的文件上传元素上——也就是页面里的<input type="file" accept="image/*">这类标签。可以用Chrome远程调试工具确认元素定位是否准确,比如用这段代码精准定位:

WebElement fileInput = driver.findElement(By.cssSelector("input[type='file']"));

如果定位到其他元素,再怎么传路径都是无效的。

3. 改用Android真实存储路径

很多设备上/sdcard/只是软链接,实际可被Chrome正常识别的绝对路径是/storage/emulated/0/。你可以试试用这个路径:

fileInput.sendKeys("/storage/emulated/0/imgtoupload.png");

推送文件后,先用adb命令确认文件确实存在:

adb shell ls /storage/emulated/0/imgtoupload.png

如果返回文件名,说明路径和文件都没问题。

4. 启动Chrome时添加权限相关参数

给ChromeOptions加上允许文件访问的参数,能解决部分权限限制导致的ERR_ACCESS_DENIED:

ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("androidPackage", "com.android.chrome");
// 允许从文件系统访问资源
options.addArguments("--allow-file-access-from-files");
// 部分场景下需要临时关闭web安全策略
options.addArguments("--disable-web-security");
ChromeDriver driver = new ChromeDriver(options);

5. 用Chrome DevTools协议直接注入文件(终极方案)

如果上面的方法都不行,试试用Chrome调试协议绕过系统文件选择器,直接给输入框注入文件:

// 获取DevTools会话
DevTools devTools = driver.getDevTools();
devTools.createSession();

// 获取文件上传元素的选择器
WebElement fileInput = driver.findElement(By.cssSelector("input[type='file']"));
String selector = "#" + fileInput.getAttribute("id");

// 通过DevTools设置要上传的文件
devTools.send(Page.setFileInputFiles(
    Collections.singletonList("/storage/emulated/0/imgtoupload.png"),
    Page.SetFileInputFilesRequest.Builder.forSelector(selector).build()
));

// 触发上传操作
fileInput.submit();

这个方法直接通过底层协议操作,绕过了Android Chrome的文件选择逻辑,成功率很高。


内容的提问来源于stack exchange,提问作者Lee Ji Soo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 17:52:39