如何为 CEF/Winforms 应用程序配置 selenium (exe)

How to configure selenium for CEF/Winforms applications (exe)

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

如果有人在为 CEFsharp 应用程序配置 selenium 时遇到问题,请查看此 post。我度过了一段艰难的时光,并在互联网上搜索以实现这一目标,我想与其他人分享这些信息。

我的环境:

解决方法如下:

确保您的应用程序使用 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

要连接到 selenium 使用的应用程序:

 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 驱动。

需要考虑的事项:

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

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

努格特:

  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

祝你好运!