Остановить процесс драйвера после - сеанс не создан: эта версия ChromeDriver поддерживает только версию Chrome - PullRequest
0 голосов
/ 01 ноября 2019

При попытке инициализировать ChromeDriver для запуска тестов селена в C # эта ошибка несоответствия приводит к тому, что исполняемый файл chromedriver продолжает работать.

Я изменил код, чтобы перехватить исключение, и затем вызвал Driver.Quit() однакоэто никак не влияет на выполняемый процесс.

Как я могу предотвратить превращение драйвера в процесс зомби (технически не зомби).

1 Ответ

0 голосов
/ 02 ноября 2019

Я работал над этой проблемой:

using NeoSmart.AsyncLock;
// ...
private static AsyncLock driverlock = new AsyncLock();

using (driverlock.Lock())
{
    // /13116926/ostanovit-protsess-draivera-posle-seans-ne-sozdan-eta-versiya-chromedriver-podderzhivaet-tolko-versiy-chrome
    var process = Process.GetProcessesByName("chromedriver");
    try
    {
        Browser = new ChromeDriver(chromeOptions);
    }
    catch(InvalidOperationException e)
    {
        var newProcess = Process.GetProcessesByName("chromedriver");
        newProcess.Select(x => x.Id)
            .Except(process.Select(x => x.Id))
            .ToList().ForEach(x => Process.GetProcessById(x).Kill());
        throw;
    }

}

Подано: https://github.com/SeleniumHQ/selenium/issues/7748

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...