Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Как удалить куки со всех доменов без перезапуска браузера

cookie
maven
selenium
webdriver
java
Теги: #<Tag:0x00007f7b704b0dc8> #<Tag:0x00007f7b704b0c38> #<Tag:0x00007f7b704b0aa8> #<Tag:0x00007f7b704b0918> #<Tag:0x00007f7b704b07b0>

(Sergey356) #1

Всем привет:) Всем известно, что метод deleteAllCookies() удаляет куки текущего домена.
Есть ли возможность удалять куки ВСЕХ доменов в текущем экземпляре браузера, без его перезапуска?


(Alexey Lakovych) #2

можно удалять с помощью настроек браузера все куки (например в хроме):

driver.get("chrome://settings/cookies"); // переход на страницу настроек
final By cleanCacheIframe = By.xpath("//iframe[@src='chrome://settings-frame/cookies']"); //фрейм с кнопкой для удаления
driver.switchTo().frame(driver.findElement(cleanCacheIframe));
driver.findElement(By.xpath("//*[@class='remove-all-cookies-button']")).click(); // нажатие на кнопку удаления

(Sergey356) #3

А для FireFox такой метод пройдет?


(Alexey Lakovych) #4

для firefox нет, это конкретно для хрома пример


(Sergey356) #5

Хотелось бы какой нибудь универсальный механизм.
А так в голову пока приходит костыльный способ. Тупо делать driver.get() и затем driver.deleteAllCookies() и так для всех доменов, но это как то не профессионально что ли:)


(Alexey Lakovych) #6

Еще, вроде как, есть вариант с назначением папки для кук и очисткой этой папки когда нужно куки удалить


(Dmitry Bogatko) #7

можно пробовать запускать каждый instance в private mode(ключ -private-window). https://developer.mozilla.org/en-US/docs/Mozilla/Command_Line_Options


(Sergey356) #8

И что нам это даст в итоге?


(Dmitry Bogatko) #9

если тесты не в параллели запускать и закрывать браузер после выполнения теста, то куки не сохраняются и каждый раз по новой. с параллельными не прокатит. можно попробовать стартовать каждый раз с новый профилем firefox настроенным под нужды(не уверен прокатит ли, нужно проверять)


(Sergey356) #10

Вообщем элегантного подхода не нашел, поэтому пришлось перекладывать часть по удалению cookie на те тесты, которые работали в авторизованной зоне