「Selenium」- org.openqa.selenium.InvalidArgumentException: invalid argument: File not found : xxxxxxx

  CREATED BY JENKINSBOT

问题描述

在使用 Selenium 进行文件上传(Uploading Files)的时候,会提示如下错误:

org.openqa.selenium.InvalidArgumentException: invalid argument: File not found : xxxxxxx

原因分析

该问题与特定环境相关,我们实在 Ubuntu 20.04 中遇到该问题。

# 03/07/2021 后来,我们恍然大悟,突然想起来 Ubuntu 20.04 的 Chromium 是通过 snap 安装的,它的文件系统是隔离的、受限的,不能随意访问主机的根文件系统。而我们的被上传文件保存在主机中的其他目录,这对于通过 snap 安装的 Chromium 是不可见的。所以,才会提示无法找到文件。

解决方法

在 Ubuntu 20.04 中,需要使用 snap 才能安装 Chromium 浏览器。当然也能够通过 deb 方法来安装(Chromium Installation),但是繁琐不说,而且日后或许会带来其他问题(我们并不清楚 Ubuntu 以后会怎么变化,采取与官方默认行为不同的做法,日后可能带来麻烦)。

因此,我们直接放弃使用 Chromium 浏览器,改用 Google Chrome 浏览器:
1)首先,卸载 snap 服务(虽然这与解决问题无关,这是为了避免日后的其他麻烦);
2)然后,安装 Google Chrome 浏览器安装 ChromeDriver 驱动