【问题标题】:docker: c# how to run selenium via webapidocker: c# 如何通过 webapi 运行 selenium
【发布时间】: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


    【解决方案1】:

    我找到了答案。我最终使用了来自 docker 映像 HERERemoteWebDriver。按照说明操作后,现在一切正常。

    【讨论】:

      猜你喜欢
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-13
      • 2020-01-26
      相关资源
      最近更新 更多