Процессы Chrome не завершаются после использования метода quit () в Chrome 65

У меня проблема после обновления моего браузера Chrome до версии 65.0.3325.162 (последней)

Когда мои тесты запускаются после выполнения каждого метода в диспетчере задач, появляется дополнительный процесс зомби Chrome, который занимает много ресурсов процессора.

Процессы Chrome не завершаются после использования метода quit () в Chrome 65

Есть ли какие-либо изменения в методе driver.quit () в Chrome 65? Добавлю, что в предыдущей версии браузера Chrome все было в порядке.

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

Я использую mothod terminate (), чтобы закрыть браузер после каждого тестового класса.

Мои вещи: Windows 10 Selenium WebDriver ChromeDriver 2.36 Selenium WebDriver 2.20

@AfterClass(alwaysRun = true)
    protected void terminate() {
        if (browser != null) {
            try {
                browser.quit();
                browser = null;
            } catch (UnreachableBrowserException ex) {
                TestReporter.log(ex.getMessage());
            } catch (NoSuchSessionException noSuchSessionException) {
                TestReporter.log("Tried to quit browser with NULL session: " + noSuchSessionException.getMessage());
            }
        }

        if (application != null) {
            application = null;
        }
    }

Может быть ошибка. Я обнаружил аналогичную проблему в старых версиях Chrome. github.com/seleniumhq/selenium-google-code-issue-archive/iss‌ ues /…. проверьте в git, есть ли существующий тикет по вашей проблеме.

Naveen Kumar R B 16.03.2018 13:06

Я никогда не встречал версии Chrome, в которой бы этого не было.

Bill Hileman 16.03.2018 15:19

это сработало для меня с решением ниже

sarath 05.02.2019 22:44
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
4
4
2 363
2

Ответы 2

Обновление до новой версии браузера Chrome решило мою проблему. Похоже, что в Chrome 65.0.3325.162 возникла проблема, из-за которой было создано множество зомби-процессов Chrome.

1) Получите драйвер как singleton

@Singleton
class BrowserInstance {

ChromeDriver getDriver(){
    ChromeOptions options = new ChromeOptions()
    options.addArguments("--headless --disable-gpu")
    return new ChromeDriver(options)
   }
}

2) Используйте Close и выйдите из блока finally

finally {
        chromeDriver.close()
        chromeDriver.quit()
    }

Результат: вы будете использовать только один экземпляр одновременно, и если вы увидите диспетчер задач, вы не обнаружите, что хромированный процесс и процесс Chrome зависают.

Другие вопросы по теме