Не выгружается chrome после прохождения тестов с использованием selenide


(Denis Krutikov) #1

При прохождении тестов браузер впоследствии не выгружается и грузит процессор на 99%. Такая ситуация наблюдается и на винде и на линуксе при повторном запуске тестов несколько раз подряд(лично мне хватает на 4-5 запусков тестов). Чтобы продолжить работу приходится вручную завершать процессы с браузером, отмеченные на скрине. Почему так происходит, и что необходимо сделать, чтобы браузер полностью закрывался после прохождения тестов?
В браузере выключено “Не отключать работающие в фоновом режиме сервисы при закрытии браузера”.


Используемые аннотации junit:

    @Before
    public void setUp(){
        Configuration.browser = "chrome";
        open("http://site.com");
    }
    @After
    public void clearTasks(){
        clearBrowserLocalStorage();
    }

(asolntsev) #2

У меня такая проблема вроде не повторяется.
А какая точно версия Chrome и chromedriver?


(Denis Krutikov) #3

Chrome 65.0.3325.181 64 bit
ChromeDriver 2.37.544315


(ekol t.) #4

Проблема повторяется на Windows 8.1 x64.


(Pavel Ozerov) #5

Здравствуйте! Проблема действительно есть и повторяется на разных ОС. Я решил ее вызовом этих двух методов после каждого теста:

WebDriverRunner.closeWebDriver();
WebDriverRunner.clearBrowserCache();

Для красоты можете поставить их в ваш блок @after или же обернуть в отдельный метод.


(Denis Krutikov) #6

У меня воспроизводится на Windows 10 x64 и Ubuntu 16.04 x64.
Selenide 4.10.01


(Denis Krutikov) #7

Здравствуйте!
В вашем случае получается, что браузер будет закрываться после каждого теста. Попробовал добавить предложенные методы в @AfterClass, результат такой же. Не помогло, к сожалению.


(Pavel Ozerov) #8

Да, все правильно. Просто перед началом каждого теста я его открываю.

https://github.com/sant0ku/selenide-helpers/blob/master/WindowManager.java

Мне кажется, что вы могли бы добавить открытие браузера до начала каждого теста. А в конце каждого теста он бы закрывался. Во всяком случае у меня это решило проблему, с которой вы столкнулись.


(Denis Krutikov) #9

Это понятно, но результат не изменился, даже если использовать ваш способ.
И, кстати, если закрывать браузер после каждого теста, то весь прогон у меня занял 5м46с, но это из-за того, что процессор забило. Для сравнения, без закрытия браузера у меня все тесты проходят за 12,5с.
Чтобы не закрывать браузер, я использую такие методы:

    @After
    public void tearDown(){
        clearBrowserCookies();
        clearBrowserLocalStorage();

(Lev Yarushin) #10

Да, это баг хрома. Скорее всего у вас используется аргумент - -no-sandbox
Если его убрать - проблема изчезнет.


(Denis Krutikov) #11

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


(Lev Yarushin) #12

https://bugs.chromium.org/p/chromedriver/issues/detail?id=2311&q=close&colspec=ID%20Status%20Pri%20Owner%20Summary

Вот баг в хромиум


(Denis Krutikov) #13

Спасибо! Будем ждать исправления и новой версии вебдрайвера.


(Denis Krutikov) #14

Данная ошибка с chrome поправлена в selenide 4.11.1