【发布时间】:2019-03-03 12:32:47
【问题描述】:
我正在运行一个测试 PoC web api。我在 web api 端点内运行 Selenium 测试。在本地一切正常,但是当我在 Docker Image 上运行它时。我得到了错误:
System.Exception: at Interop.Sys.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Boolean setUser, UInt32 userId, UInt32 groupId, Int32& lpChildPid, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean shouldThrow)
at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at OpenQA.Selenium.DriverService.Start()
at OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(Command commandToExecute)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
我在本地使用一个简单的 chromedriver 来运行它,但我不确定我的本地代码与我在 docker 中创建图像时的区别。谢谢你的帮助。我已经阅读了很多关于 docker 和 selinum 的内容,但还没有找到任何东西。
失败的代码:
ChromeOptions options = new ChromeOptions();
options.AddArgument("headless");
options.AddArguments("no-sandbox");
ChromeDriverService service = ChromeDriverService.CreateDefaultService(System.AppContext.BaseDirectory, "chromedriver");
_driver = new ChromeDriver(service, options, TimeSpan.FromSeconds(30));
我一直在使用的参考资料:
【问题讨论】:
标签: c# selenium-webdriver .net-core