Автоматизация пользовательского интерфейса с использованием Selenium c # для приложения Windows, разработанного с помощью приложения WPF с фреймворком CEF

Я пытаюсь автоматизировать пользовательский интерфейс для приложения Windows, созданного с помощью WPF и CEF (Chromium Embedded Framework). Я не мог найти много материалов по этой теме в Интернете.

Примечание. Приложение, которое пытается выполнить тест пользовательского интерфейса, уже работает в Windows 10, и его можно найти в свернутом виде с помощью значков на панели задач.

Я пытаюсь выполнить следующие действия: 1. Открыть приложение. 2. Поиск элементов в приложении. Это фрагмент кода, который я написал, чтобы открыть приложение.

[TestMethod]
    public void TestMethod1()
    {

        ChromeOptions chromeOptions = new ChromeOptions();
        chromeOptions.BinaryLocation = "C:\\Program Files (x86)\\App\\AppClient.exe";

        System.Environment.SetEnvironmentVariable("webdriver.chrome.driver", @"C:\Users\source\repos\bin\Debug\chromedriver.exe");

      IWebDriver webDriver = new ChromeDriver(chromeOptions);
    }

Когда я запускаю это, я получаю сообщение об ошибке

Сообщение: тестовый метод WebViewPoc.UnitTest1.TestMethod1 вызвал исключение: OpenQA.Selenium.WebDriverException: неизвестная ошибка: не удалось запустить Chrome: завершился нормально. (неизвестная ошибка: файл DevToolsActivePort не существует) (процесс, запущенный из местоположения Chrome C: \ Program Files (x86) \ App \ AppClient.exe, больше не выполняется, поэтому ChromeDriver предполагает, что Chrome разбился.) Трассировка стека: RemoteWebDriver.UnpackAndThrowOnError (Response errorResponse) RemoteWebDriver.Execute (String driverCommandToExecute, параметры Dictionary`2) RemoteWebDriver.StartSession (ICapabilities requiredCapabilities) RemoteWebDriver.ctor, ICommabilitiesDriverCapabilities) RemoteWebDriver. .ctor (параметры ChromeOptions) UnitTest1.TestMethod1 () строка 25

Примечание: я отредактировал некоторые из местоположений и имен директорий.

Было бы здорово, если бы кто-то мог помочь с этим, и если бы кто-то раньше автоматизировал такое приложение, было бы здорово получить для этого код.


person ninja    schedule 17.06.2020    source источник
comment
Общие инструкции находятся по адресу bitbucket.org/chromiumembedded/cef/wiki/UsingChromeDriver.md вам нужно включить удаленную отладку   -  person amaitland    schedule 18.06.2020


Ответы (1)


[TestMethod]
    public void TestMethod1()
    {

      ChromeOptions chromeOptions = new ChromeOptions();
      chromeOptions.BinaryLocation = "C:\\Program Files (x86)\\App\\AppClient.exe";

      chromeOptions.AddArguments("remote-debugging-port=port#");

      var driver = new ChromeDriver(chromeOptions);
    }

порт № - это номер порта отладки приложения, которое вы пытаетесь протестировать, спросите об этом у разработчика. Спросите разработчика, нужно ли вам также добавить ключ реестра.

person ninja    schedule 19.06.2020
comment
что appClient.exe - это наша WinForm со встроенным CEF? - person gumuruh; 27.02.2021
comment
@gumuruh да, я так думаю. - person ninja; 23.03.2021