【发布时间】:2020-02-11 05:08:28
【问题描述】:
我正在通过 Zalenium docker 映像运行我的 Selenium 测试。我有一个测试需要将 .pdf 文档上传到应用程序。 我将用来存储所有 .pdf 文件的目录是: D:\Automation\KITS Automation\exports-endtoend-tests\Defra.Exports.EndToEnd.Tests\bin\Debug\netcoreapp2.1 我已将此路径添加到我的 docker CMD 窗口,如下所示:
docker run --rm -ti --name zalenium -p 4444:4444 -v /var/run/docker.sock:/var/run/docker.sock -v /tmp/videos:/home/seluser/视频 -v /d:/automation/kits automation/exports-endtoend-tests/defra.exports.endtoend.tests/bin/debug/netcoreapp2.1 --privileged dosel/zalenium start
一旦添加了 docker 请求以通过确认弹出框共享此文件,但是当我运行测试时,我仍然看到下面的错误
OpenQA.Selenium.WebDriverException:无效参数:找不到文件:D:\Automation\KITS Automation\exports-endtoend-tests\Defra.Exports.EndToEnd.Tests\bin\Debug\netcoreapp2.1\test-ehc。 pdf
执行上传文件的c#代码:
string folder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string filePath = Path.Combine(folder, "test-ehc.pdf");
driver.FindElement(By.Id("file")).SendKeys(filePath)
【问题讨论】:
-
如果您需要访问主机 Docker 套接字、特权容器和来自主机的任意内容,您可能会发现在 Docker 之外运行该进程更容易。
-
谢谢大卫,你是对的,测试在 docker 之外本地运行完美,但自动化平台使用 docker 是业务需求。我相信这是可能的,我只是不在那里
-
我还尝试通过 docker 应用程序中的设置共享完整的 D: 驱动器: Docker/Settings/Shared Drives 执行此操作后,我看到防火墙正在阻止 Windows 和容器之间的文件共享。有关更多信息,请参阅文档。我已经检查了我的防火墙 DockerSmbMount 在 Public 和 Private 上都启用了这里还有什么需要的吗?