c# - docker : c# how to run selenium via webapi

标签 c# selenium-webdriver .net-core

我正在运行一个测试 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));

我一直在使用的引用资料:

最佳答案

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

关于c# - docker : c# how to run selenium via webapi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54876495/

相关文章:

C#:对象中有未使用的变量的开销

java - 如何处理页面未找到或显示异常

selenium - 检查 WebElement 是否已过时而不处理异常

java - how = Selenium 中的 How.ID

javascript - 自动完成后的事件填充 Asp.net C# 或 javascript/html,

c# - 从 MongoDB 查询嵌套对象

C# WPF Entity Framework 6 同步数据库

c# - 在 .NET Core 2.1 中使用 [FromBody] 时处理模型绑定(bind)错误

c# - ConcurrentQueue.Count 在 .NET Core 中非常慢

c# - 正则表达式:获取任何花括号之间的任何内容