【发布时间】:2021-03-14 05:50:20
【问题描述】:
我有一个用于上传附件的 selenium 脚本,可以在 maven 和 java 上运行,并且在本地运行时工作正常。
当我使用 selenium 独立服务器在 docker 容器上运行它时,会收到以下异常
org.openqa.selenium.InvalidArgumentException: invalid argument: File not found :
不确定如何在容器内解决,我已验证文件可用
我使用的docker compose文件如下:
version : '3'
services :
maven:
container_name : Maven-Java
image : maven:3.5.3-jdk-8-alpine
volumes :
- .:/workspace
- ~/.m2:/root/.m2
depends_on :
- selenium
command : mvn -f /workspace test
selenium:
container_name : selenium
image : selenium/standalone-chrome:latest
volumes:
- /dev/shm:/dev/shm
ports :
- 4444:4444
【问题讨论】:
-
您说您已验证文件可用。您是否验证了该文件在 docker 容器中可用?
-
我打印了该特定位置的可用文件。并且从日志中验证文件可用,但驱动程序无法上传。
-
在 docker 容器上运行它是什么意思? Docker 容器作为枢纽?
-
Docker 容器文件系统与主机系统隔离。因此,您不能只在 docker 中运行脚本并期望它会访问您主机上的任何内容。您需要将主机上的文件夹挂载到容器内的文件夹或将文件复制到容器文件系统(构建要运行的映像时会采用这两个选项)。
-
@PDHide,我使用 selenium 独立 chrome 在 docker 中运行,您可以在此处找到相关信息 github.com/SeleniumHQ/docker-selenium#standalone