从D:Windows OS挂载文件以将文件上传到Zalenium泊坞映像

时间:2019-11-19 12:18:14

标签: docker zalenium

我正在通过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自动化/exports-endtoend-tests/defra.exports.endtoend.tests/bin/debug/netcoreapp2.1-特权剂量/ zalenium开始

一旦添加了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)

2 个答案:

答案 0 :(得分:0)

这与Zalenium完全无关。测试代码(这里是C#)需要访问要上传的文件。通常,这是通过

完成的
driver.setFileDetector(new LocalFileDetector());

如果您想在Docker容器中运行C#代码,请查看可用于此的Docker映像。最后,不需要与Zalenium共享要上传的文件,而需要与将执行测试代码的容器共享。

答案 1 :(得分:0)

这与Zalenium有关,当您使用以下命令启动Zalenium时:

docker run --rm -ti --name zalenium -p 4444:4444 -v 
/var/run/docker.sock:/var/run/docker.sock -v /D/source/repos/Defra.Git/ehco-endtoend- 
tests/src/main/resources/upload:/tmp/node/home/seluser/Downloads --privileged 
dosel/zalenium start --desiredContainers 2