t.me/atinfo_chat Telegram группа по автоматизации тестирования

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

Теги: #<Tag:0x00007f9afe88c7f0> #<Tag:0x00007f9afe88c980> #<Tag:0x00007f9afe88cb38> #<Tag:0x00007f9afe88cd40> #<Tag:0x00007f9afe88d8a8>

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

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

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(); // нажатие на кнопку удаления

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

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

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

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

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

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

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

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