Работа с бисквитки в Selenium WebDriver

Съдържание:

Anonim

HTTP бисквитката се състои от информация за потребителя и неговите предпочитания. Той съхранява информация, като използва двойка ключ-стойност. Това е малка част от данните, изпратени от уеб приложението и съхранени в уеб браузъра, докато потребителят разглежда този уебсайт.

Щракнете тук, за да научите за тестването на бисквитки.

В този урок ще научим -

  • Команди за запитване за селен за бисквитки
  • Защо да боравим с бисквитки в селен?
  • Демонстрация: Работа с бисквитки в Селен.
  • Стъпка 1) Съхраняване на информация за бисквитките.
  • Стъпка 2) Използване на съхранена бисквитка за влизане в приложението.

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

В Selenium Webdriver можем да правим запитвания и да си взаимодействаме с бисквитките с вграден по-долу метод:

driver.manage (). getCookies (); // Върнете списъка с всички бисквиткиdriver.manage (). getCookieNamed (arg0); // Връща конкретна бисквитка според иметоdriver.manage (). addCookie (arg0); // Създаване и добавяне на бисквиткаdriver.manage (). deleteCookie (arg0); // Изтриване на конкретна бисквиткаdriver.manage (). deleteCookieNamed (arg0); // Изтриване на конкретна бисквитка според Имеdriver.manage (). deleteAllCookies (); // Изтриване на всички бисквитки

Защо да боравим с бисквитки в селен?

Всяка бисквитка е свързана с име, стойност, домейн, път, срок на годност и състоянието на това дали е защитена или не. За да провери клиента, сървърът анализира всички тези стойности в бисквитка.

Когато тествате уеб приложение с помощта на уеб драйвер за селен, може да се наложи да създадете, актуализирате или изтриете бисквитка.

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

Ако бисквитките не се съхраняват, ще трябва да извършите действие за влизане всеки път, преди да изпълните гореизброените тестови сценарии. Това ще увеличи усилията ви за кодиране и времето за изпълнение.

Решението е да съхранявате бисквитки във файл. По-късно извлечете стойностите на бисквитката от този файл и добавете към него текущата си сесия на браузъра. В резултат на това можете да пропуснете стъпките за влизане във всеки тестов случай, тъй като вашата сесия на драйвера съдържа тази информация.

Сега сървърът на приложения третира сесията на браузъра ви като удостоверена и директно ви отвежда до заявения URL адрес.

Демонстрация: Работа с бисквитки в Селен.

Ние ще използваме http://demo.guru99.com/test/cookie/selenium_aut.php за нашата демо цел.

Това ще бъде двуетапен процес.

Стъпка 1) Влезте в приложението и съхранете генерираната бисквитка за удостоверяване.

Стъпка 2) Използвате съхранената бисквитка, за да влезете отново в приложението, без да използвате идентификатор на потребителя и парола.

Стъпка 1) Съхраняване на информация за бисквитките.

пакет CookieExample;импортиране на java.io.BufferedWriter;import 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;публична класа cookieRead {публична статична 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 ("submit")). click ();// създаване на файл с име „Бисквитки“ за съхраняване на информация за входФайлов файл = нов файл ("Cookies.data");опитвам{// Изтриване на стар файл, ако съществуваfile.delete ();file.createNewFile ();FileWriter fileWrite = нов FileWriter (файл);BufferedWriter Bwrite = нов BufferedWriter (fileWrite);// цикъл за получаване на информация за бисквитките// цикъл за получаване на информация за бисквиткитеза (бисквитка 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){ex.printStackTrace ();}}}

Обяснение на кода:

  • Създайте екземпляр на WebDriver
  • Посещаваме уебсайта с помощта на driver.get („http://demo.guru99.com/test/cookie/selenium_aut.php“)
  • Влезте в приложението
  • Прочетете информацията за бисквитките с помощта на
    driver.manage (). getCookies (); 
  • Съхранявайте информацията за бисквитките, използвайки FileWriter Class, за да пишете потоци от символи и BufferedWriter, за да записвате текста във файл, който да създадете във файл Cookies.data
  • Файлът "Cookies.data" съхранява цялата информация за бисквитките заедно с "Име, стойност, домейн, път". Ние можем да извлечем тази информация и да влезем в приложението, без да въвеждаме идентификационните данни за вход.
  • След като стартирате над кода, файлът Cookie.data се създава в структурата на папката на проекта, както е показано на екрана по-долу. Отворете файла Cookie.data, можете да видите идентификационните данни за влизане в AUT, записани във формата на Cookie, вижте екрана, подчертан по-долу

Стъпка 2) Използване на съхранена бисквитка за влизане в приложението.

Сега ще получим достъп до бисквитката, генерирана в стъпка 1, и ще използваме генерираната бисквитка, за да удостоверим нашата сесия в приложението

пакет CookieExample;импортиране на java.io.BufferedReader;import 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{публична статична 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;докато ((strline = Buffreader.readLine ())! = null) {StringTokenizer token = нов StringTokenizer (strline, ";");while (token.hasMoreTokens ()) {Име на низ = token.nextToken ();Стойност на низа = token.nextToken ();Низ на домейн = token.nextToken ();Път на низ = token.nextToken ();Изтичане на датата = нула;String val;ако (! (val = token.nextToken ()). е равно ("null")){изтичане = нова дата (val);}Boolean isSecure = нов Boolean (token.nextToken ()).booleanValue ();Бисквитка ck = нова бисквитка (име, стойност, домейн, път, изтичане, isSecure);System.out.println (ck);driver.manage (). addCookie (ck); // Това ще добави съхранената бисквитка към текущата ви сесия}}} catch (Изключение ex) {ex.printStackTrace ();}driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");}}

ИЗХОД: Ще бъдете отведени директно до екрана за успех на влизане, без да въвеждате въведения потребителски идентификатор и парола

ЗАБЕЛЕЖКА: Използвайте твърдо опресняване, в случай че видите страницата за вход след изпълнение на горния скрипт.

Заключение

По този начин можете да избегнете въвеждането на потребителско име и парола на сървъра, като ги потвърждавате отново и отново за всеки тест с помощта на Selenium Webdriver и по този начин спестявате много време.

Тази статия е предоставена от Mangesh Waghmare