Файл cookie HTTP состоит из информации о пользователе и его предпочтениях. Он хранит информацию с помощью пары ключ-значение. Это небольшой фрагмент данных, отправленный из веб-приложения и хранящийся в веб-браузере, пока пользователь просматривает этот веб-сайт.
Щелкните здесь, чтобы узнать о тестировании файлов cookie.
В этом уроке мы узнаем -
- Команды запроса Selenium для файлов cookie
- Зачем обрабатывать файлы cookie в селене?
- Демо: обработка файлов cookie в Selenium.
- Шаг 1) Сохранение информации cookie.
- Шаг 2) Использование сохраненного файла cookie для входа в приложение.
Команды запроса Selenium для файлов cookie
В Selenium Webdriver мы можем запрашивать файлы cookie и взаимодействовать с ними с помощью встроенного метода ниже:
driver.manage (). getCookies (); // Возвращаем список всех файлов cookiedriver.manage (). getCookieNamed (arg0); // Возвращаем конкретный файл cookie по имениdriver.manage (). addCookie (arg0); // Создаем и добавляем cookiedriver.manage (). deleteCookie (arg0); // Удаляем конкретный файл cookiedriver.manage (). deleteCookieNamed (arg0); // Удаляем определенный файл cookie по имениdriver.manage (). deleteAllCookies (); // Удаляем все куки
Зачем обрабатывать файлы cookie в селене?
Каждый файл cookie связан с именем, значением, доменом, путем, сроком действия и статусом, безопасен он или нет. Чтобы проверить клиента, сервер анализирует все эти значения в файле cookie.
При тестировании веб-приложения с использованием веб-драйвера selenium вам может потребоваться создать, обновить или удалить файл cookie.
Например, при автоматизации приложения для онлайн-покупок вам необходимо автоматизировать сценарии тестирования, такие как размещение заказа, просмотр корзины, информация об оплате, подтверждение заказа и т. Д.
Если файлы cookie не сохраняются, вам нужно будет выполнять вход в систему каждый раз перед выполнением перечисленных выше тестовых сценариев. Это увеличит ваши усилия по кодированию и время выполнения.
Решение - хранить файлы cookie в файле. Позже извлеките значения cookie из этого файла и добавьте в него текущий сеанс браузера. В результате вы можете пропустить шаги входа в систему в каждом тестовом случае, потому что в сеансе вашего драйвера есть эта информация.
Сервер приложений теперь рассматривает сеанс вашего браузера как прошедший проверку подлинности и напрямую перенаправляет вас по запрошенному URL-адресу.
Демо: обработка файлов cookie в Selenium.
Мы будем использовать http://demo.guru99.com/test/cookie/selenium_aut.php для нашей демонстрационной цели.
Это будет двухэтапный процесс.
Шаг 1) Войдите в приложение и сохраните сгенерированный файл cookie аутентификации.
Шаг 2) Использовал сохраненный файл cookie, чтобы снова войти в приложение без использования идентификатора пользователя и пароля.
Шаг 1) Сохранение информации cookie.
package CookieExample;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.util.Set;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.Cookie;public class cookieRead {public static void main (String [] args){Драйвер WebDriver;System.setProperty ("webdriver.chrome.driver", "G: ///chromedriver.exe");драйвер = новый ChromeDriver ();driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");// Введите идентификатор электронной почты и пароль, если вы уже зарегистрированыdriver.findElement (By.name ("имя пользователя")). sendKeys ("abc123");driver.findElement (By.name ("пароль")). sendKeys ("123xyz");driver.findElement (By.name ("отправить")). click ();// создаем файл с именем Cookies для хранения информации для входаФайл файл = новый файл ("Cookies.data");пытаться{// Удаляем старый файл, если он существуетfile.delete ();file.createNewFile ();FileWriter fileWrite = новый FileWriter (файл);BufferedWriter Bwrite = новый BufferedWriter (fileWrite);// цикл для получения информации cookie// цикл для получения информации cookieдля (Cookie ck: driver.manage (). getCookies ()){Bwrite.write ((ck.getName () + ";" + ck.getValue () + ";" + ck.getDomain () + ";" + ck.getPath () + ";" + ck.getExpiry () + ";" + ck.isSecure ()));Bwrite.newLine ();}Bwrite.close ();fileWrite.close ();}улов (исключение ex){например printStackTrace ();}}}
Пояснение к коду:
- Создать экземпляр WebDriver
- Мы посещаем сайт с помощью driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php")
- Войти в приложение
- Прочтите информацию о файлах cookie, используя
driver.manage (). getCookies ();
- Сохраните информацию cookie с помощью класса FileWriter для записи потоков символов и BufferedWriter для записи текста в файл для создания в файле Cookies.data
- В файле «Cookies.data» хранится вся информация о файлах cookie, а также «Имя, Значение, Домен, Путь». Мы можем получить эту информацию и войти в приложение без ввода учетных данных.
- После запуска вышеуказанного кода файл Cookie.data создается в структуре папок проекта, как показано на экране ниже. Откройте файл Cookie.data, вы увидите, что учетные данные для авторизации в AUT сохранены в формате Cookie, см. Экран, выделенный ниже.
Шаг 2) Использование сохраненного файла cookie для входа в приложение.
Теперь мы получим доступ к cookie, сгенерированному на шаге 1, и будем использовать сгенерированный cookie для аутентификации нашего сеанса в приложении.
package CookieExample;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.util.Date;import java.util.StringTokenizer;import org.openqa.selenium.Cookie;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;открытый класс CookieWrite{public static void main (String [] args) {Драйвер WebDriver;System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");драйвер = новый ChromeDriver ();пытаться{Файл файл = новый файл ("Cookies.data");FileReader fileReader = новый FileReader (файл);BufferedReader Buffreader = новый BufferedReader (fileReader);String strline;while ((strline = Buffreader.readLine ())! = null) {Токен StringTokenizer = новый StringTokenizer (strline, ";");while (token.hasMoreTokens ()) {Имя строки = token.nextToken ();Строковое значение = token.nextToken ();Строковый домен = token.nextToken ();Строка path = token.nextToken ();Дата истечения срока действия = null;String val;если (! (val = token.nextToken ()). equals ("null")){expiry = новая дата (val);}Логическое значение isSecure = новое логическое значение (token.nextToken ()).booleanValue ();Cookie ck = new Cookie (имя, значение, домен, путь, срок действия, isSecure);System.out.println (СК);driver.manage (). addCookie (ck); // Это добавит сохраненный файл cookie в ваш текущий сеанс}}} catch (Exception ex) {например printStackTrace ();}driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");}}
ВЫВОД: вы попадете прямо на экран успешного входа в систему без ввода идентификатора пользователя и пароля.
ПРИМЕЧАНИЕ. Используйте аппаратное обновление, если вы видите страницу входа в систему после выполнения вышеуказанного сценария.
Вывод
Таким образом, вы можете избежать ввода имени пользователя и пароля на сервере, проверяя их снова и снова для каждого теста с помощью Selenium Webdriver, и тем самым сэкономите много времени.
Эта статья предоставлена Mangesh Waghmare