如何使用WebDriverManager的dockerVolumes实现本地文件到Docker容器映射?
解决WebDriverManager中dockerVolumes方法映射本地文件到Docker容器的问题
问题原因
你当前的dockerVolumes配置错误在于:映射单个文件时,容器端的路径必须指定完整的文件名,而非仅写目录。如果仅指定目录,Docker会将该目录替换为你映射的文件,导致无法正常访问目标文件。
正确配置方式
修改dockerVolumes的参数,将本地文件路径映射到容器内的具体文件路径:
WebDriverManager wdm = WebDriverManager.chromedriver() .browserInDocker() .enableVnc() .enableRecording() .dockerVolumes("/home/GitHub/e2e-test/doc.pdf:/home/doc.pdf"); // 指定容器内的完整文件名
验证映射是否生效
启动测试后,进入浏览器容器(即selenoid/vnc:chrome_108.0对应的容器,如你的示例中的hopeful_brahmagupta),执行以下命令检查文件是否存在:
docker exec -it hopeful_brahmagupta ls /home/doc.pdf
额外说明
- 如果需要映射整个目录而非单个文件,格式为:
/本地目录路径:/容器内目录路径 - 确保容器内的目标路径具备足够的读写权限,避免因权限问题无法访问文件
dockerVolumes方法需在初始化WebDriver之前调用,否则配置不会生效
内容的提问来源于stack exchange,提问作者Furkan
相关产品推荐
相关产品推荐

