Selenium - создание, обновление и удаление файлов cookie

Практически все веб-сайты в той или иной форме используют файлы cookie. Печенье представляют собой способ запоминания пользователей и их взаимодействия с сайтом путем хранения информации в файле cookie в виде пар ключ-значение.

При тестировании веб-сайта с помощью Selenium WebDriver иногда необходимо обрабатывать файлы cookie, например создавать новые файлы cookie, обновлять существующие файлы cookie с добавлением новой информации или удалять файлы cookie.

В этом руководстве по WebDriver мы рассмотрим обработку файлов cookie в WebDriver. Примеры кода Java для создания, обновления и удаления файлов cookie с помощью Selenium WebDriver.


Чтобы использовать любой из методов обработки файлов cookie в WebDriver, нам сначала нужно импортировать класс Cookie. Для этого мы используем

import org.openqa.selenium.Cookie;

Получить все файлы cookie

//This method gets all the cookies public Set getAllCookies() {
return driver.manage().getCookies(); }

Получить именованный файл cookie

//This method gets a specified cookie public Cookie getCookieNamed(String name) {
return driver.manage().getCookieNamed(name); }

Получить значение cookie

//This method gets the value of a specified cookie public String getValueOfCookieNamed(String name) {
return driver.manage().getCookieNamed(name).getValue(); }

Добавить файл cookie

//This method adds or creates a cookie public void addCookie(String name, String value, String domain, String path, Date expiry) {
driver.manage().addCookie(
new Cookie(name, value, domain, path, expiry)); }

Добавить набор файлов cookie

//This method adds set of cookies for a domain public void addCookiesToBrowser(Set cookies, String domain) {
for (Cookie c : cookies) {
if (c != null) {

if (c.getDomain().contains(domain)){


driver.manage().addCookie(


new Cookie(name, value, domain, path, expiry));

}
}
}
driver.navigate().refresh(); }

Удалить определенный файл cookie

//This method deletes a specific cookie public void deleteCookieNamed(String name) {
driver.manage().deleteCookieNamed(name); }

Удалить все файлы cookie

//This method deletes all cookies public void deleteAllCookies() {
driver.manage().deleteAllCookies(); }