如何为CEF / Windows应用程序(exe)配置硒

时间:2019-04-03 14:45:35

标签: c# selenium selenium-webdriver cefsharp chromium-embedded

主要问题:如何在C#中为CEFsharp应用程序配置硒?

如果有人在配置CEFsharp应用程序中的硒时遇到问题,请查看这篇文章。我度过了艰难的时光,并搜寻了互联网以实现这一目标,并且我想与他人共享此信息。

我的环境:

  • VS 2017
  • C#后端/中间件
  • 有角前端
  • CEF封装应用程序
  • 应用程序是exe

1 个答案:

答案 0 :(得分:0)

这是解决方案:

确保您的应用程序使用RemoteDebugging(在主程序文件中):

 static void Main()
        {
            var cefSettings = new CefSettings
            {
                WindowlessRenderingEnabled = true,
                MultiThreadedMessageLoop = true,
                BrowserSubprocessPath = @"CefSharp.BrowserSubprocess.exe",  
                LogSeverity = LogSeverity.Error,
            };
            cefSettings.CefCommandLineArgs.Add("--disable-pinch", "1");

#if DEBUG
            **cefSettings.RemoteDebuggingPort = port#;**
#endif
        Cef.Initialize(cefSettings);

如果使用angular,请确保包含(在clientshellwinforms部分中):

#if DEBUG

           _webView.Load("http://localhost:portForAngular");
#endif

要使用硒连接到应用程序,请执行以下操作:

 public void Main()
    {
        var chromeDriverService = ChromeDriverService.CreateDefaultService();
        ChromeOptions chromeOptions = new ChromeOptions();
        chromeOptions.AddArgument("remote-debugging-port=port#");
        chromeOptions.DebuggerAddress = "localhost:port#";
        driver = new ChromeDriver(chromeDriverService, chromeOptions);
    }

这时您应该可以使用硒。

注意事项:

只要应用程序启用了远程调试,就可以打开它,然后运行selenium函数。

使用chrome:// inspect(而不是调试器端口)来充分利用开发工具。

Nuget:

  1. Selenium.Chrome.WebDriver 2.34.0(旧,但金色)
  2. Selenium.Support和Selenium.WebDriver 3.141.0
  3. NUnit / NUnit3TestAdapter 3.11 / 3.13
  4. DotNetSeleniumExtras.PageObjects 3.11.0

祝你好运!