Обробка файлів cookie в Selenium WebDriver

Зміст:

Anonim

Кукі-файл HTTP складається з інформації про користувача та його уподобання. Він зберігає інформацію за допомогою пари ключ-значення. Це невеликий шматок даних, що надсилається із веб-програми та зберігається у веб-браузері, поки користувач переглядає цей веб-сайт.

Клацніть тут, щоб дізнатись про тестування файлів cookie.

У цьому підручнику ми дізнаємось -

  • Команди запиту селену для файлів cookie
  • Навіщо обробляти печиво в селені?
  • Демонстрація: обробка файлів cookie в селені.
  • Крок 1) Зберігання інформації про файли cookie.
  • Крок 2) Використання збереженого файлу cookie для входу в програму.

Команди запиту селену для файлів 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.

Під час тестування веб-програми за допомогою веб-драйвера селену вам може знадобитися створити, оновити або видалити файл cookie.

Наприклад, під час автоматизації програми для покупок в Інтернеті вам потрібно автоматизувати такі сценарії тестування, як замовлення місця, перегляд кошика, інформація про оплату, підтвердження замовлення тощо.

Якщо файли cookie не зберігаються, вам потрібно буде виконувати дії входу кожного разу, перш ніж виконувати перелічені вище перелічені сценарії тестування. Це збільшить ваші зусилля щодо кодування та час виконання.

Рішення - зберігати файли cookie у файлі. Пізніше отримайте значення файлів cookie з цього файлу та додайте до нього ваш поточний сеанс браузера. Як результат, ви можете пропустити кроки входу в кожному тестовому випадку, оскільки у вашій сесії драйвера є ця інформація.

Тепер сервер додатків розглядає сеанс вашого браузера як автентифікований і безпосередньо переводить вас до запрошеної URL-адреси.

Демонстрація: обробка файлів cookie в селені.

Ми використаємо http://demo.guru99.com/test/cookie/selenium_aut.php для нашої демонстраційної мети.

Це буде двоступеневий процес.

Крок 1) Увійдіть до програми та збережіть створений файл cookie автентифікації.

Крок 2) Використовується збережений файл cookie для повторного входу в програму без використання ідентифікатора користувача та пароля.

Крок 1) Зберігання інформації про файли cookie.

пакет CookieExample;імпортувати java.io.BufferedWriter;імпорт java.io.File;імпортувати java.io.FileWriter;імпортувати java.util.Set;імпорт org.openqa.selenium.By;імпорт org.openqa.selenium.WebDriver;імпорт org.openqa.selenium.chrome.ChromeDriver;імпорт 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 ();}catch (виняток 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, ви зможете побачити облікові дані авторизації, збережених у форматі Cookie, див. Підсвічений екран нижче

Крок 2) Використання збереженого файлу cookie для входу в програму.

Тепер ми отримаємо доступ до файлу cookie, сформованого на кроці 1, і використаємо файл cookie, сформований для автентифікації нашого сеансу в додатку

пакет CookieExample;імпортувати java.io.BufferedReader;імпорт java.io.File;імпортувати java.io.FileReader;імпортувати java.util.Date;імпортувати java.util.StringTokenizer;імпорт org.openqa.selenium.Cookie;імпорт org.openqa.selenium.WebDriver;імпорт 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 (файлReader);Рядок strline;while ((strline = Buffreader.readLine ())! = null) {StringTokenizer token = новий StringTokenizer (strline, ";");while (token.hasMoreTokens ()) {Ім'я рядка = token.nextToken ();Значення рядка = token.nextToken ();Рядок домен = token.nextToken ();Рядок шлях = token.nextToken ();Термін дії = нуль;Струнний вал;if (! (val = token.nextToken ()). дорівнює ("null")){закінчення = нова дата (val);}Логічне isSecure = нове логічне значення (token.nextToken ()).booleanValue ();Файл cookie ck = новий файл cookie (ім'я, значення, домен, шлях, термін дії, isSecure);System.out.println (ck);driver.manage (). addCookie (ck); // Це додасть збережений файл cookie до вашого поточного сеансу}}} catch (Виняток ex) {наприклад.printStackTrace ();}driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");}}

ВИХІД: Ви потрапите безпосередньо на екран успішного входу без введення введеного ідентифікатора користувача та пароля

ПРИМІТКА. Використовуйте жорстке оновлення, якщо після виконання вищевказаного сценарію ви побачите сторінку входу.

Висновок

Таким чином, ви можете уникнути введення імені користувача та пароля на сервері, перевіряючи їх знову і знову для кожного тесту за допомогою Selenium Webdriver, і тим самим економите багато часу.

Ця стаття представлена ​​Мангешем Вагмаром