Выйдите из Firefox Selenium Webdriver при завершении работы приложения ASP.NET Core. - PullRequest
0 голосов
/ 18 октября 2018

Используя Selenium в ASP.NET Core MVC 2.1, у меня есть класс, который был введен DI.Он создает экземпляр FirefoxDriver, который завершается (закрывает окно браузера и завершает процесс), когда базовое приложение ASP.NET Core завершается.

public class FFManager:IDisposable {
        RemoteWebDriver driver;
        public FFManager () {
            driver = new FirefoxDriver();
        }
        public void Dispose() {
            driver.CloseDriver();
        }
}

In Startup.ConfigureServices

services.AddSingleton<FFManager>(x => new FFManager());

Не работает

Как видите, я реализовал интерфейс IDisposable.Окно Firefox все еще открыто после завершения процесса.Другая идея заключалась в использовании события applicationLifetime.ApplicationStopping в Startup.Configure

let manager = app.ApplicationServices.GetService<FFManager>();
manager.Dispose();

Тот же результат.Во втором подходе событие определенно срабатывает (точка останова / тестирование вывода консоли), и процесс закрытия приложения ASP.NET Core немного медленнее.Но Firefox все еще открыт после выхода из приложения.Зачем?

Когда я меняю время жизни службы на область действия, экземпляр Firefox закрывается после запроса.Но это должно происходить после выхода из приложения, а не после каждого запроса.Я не получаю никаких ошибок, приложение закрывается плавно.

...