Как да направите снимка на екрана в Selenium WebDriver



Тази статия за това как да направите екранна снимка в Selenium WebDriver ви помага да научите как да заснемете екранната снимка с помощта на метода TakesScreenshot и слушателите TestNG

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

Ще обсъждам следните теми:

как да направя екранна снимка в селен -

Така че, нека започнем, хора!





Снимка на екрана в Selenium WebDriver: Защо снимката на екрана се изисква при тестване на автоматизация?

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

  • Снимките на екрана ни помагат да разберем потока на приложението и проверява дали се държи съответно.
  • Трябва да въведете копие на WebDriver на TakesScreenshot.
  • Помага, докато изпълнявате кръстосано тестване тъй като потребителят изисква да прегледа отчетите за изпълнението
  • Проследяването на изпълнението ще стане много лесно, ако работите с браузър без глава.
  • Екранна снимка на неуспешните тестове също може лесно да бъде заснета.

Сега нека да продължим напред и да научим как точно можете да направите екранна снимка, докато тествате приложение.



Екранна снимка в Selenium WebDriver: Как да заснемете екранната снимка в Selenium?

За да заснемем екранна снимка в Selenium, можем да използваме интерфейс, наречен TakesScreenshot. Този метод iобозначава драйвера, че може да направи екранна снимка и да я съхранява по различни начини.

Синтаксис:



Файлов файл = ((TakesScreenshot) драйвер) .getScreenshotAs (OutputType.FILE) String screenshotBase64 = ((TakesScreenshot) драйвер) .getScreenshotAs (OutputType.BASE64)

където OutputType дефинира типа изход за екранна снимка.

За да заснемете екранна снимка и да я съхраните на определено място, има метод, наречен „ getScreenshotAs '

Нека разберем това в детайли

За разширяване на WebDriver TakesScreenshot метод, това прави най-добрите усилия в зависимост от браузъра да върне следното в предпочитан ред:

  • Цялата страница
  • Текущ прозорец
  • Видима част от текущия кадър
  • Екранна снимка на целия дисплей, съдържащ браузъра
  • Цялото съдържание на HTML елемента - Видимата част на HTML елемента

Синтаксис:

X getScreenshotAs (OutputType (X). Target) хвърля WebDriverException

където

  • X е типът на връщане на метода
  • Target съдържа адреса на местоназначението
  • Хвърля ако основната реализация не поддържа заснемане на екранна снимка.

Тестовият случай не бе успешен

излезе с някои страхотни нови функционалности, които значително улесняват тестването на приложение. Това е така, защото позволява взаимодействие извън пясъчника на Javascript. Една от новите полезни функции е възможността да се правят екранни снимки от WebDriver.

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

За да направя това, първо, ще трябва

  • Създайте клас и след това внедретеTestNG ‘ ITestListener ' .
  • След това извикайте метод ‘OnTestFailure’ .
  • Добавете кода, за да направите екранна снимка по този метод.
  • Вместо просто да правите екранната снимка, вземете името на метода на теста и направете екранна снимка с името на теста и я поставете в целевата папка.

Сега въпросът е как да получите обекта на драйвера в класа TestListeners с помощта на TestNG?

Ще ви помогна да разберете колко лесно е да направите това.

За да направим екранна снимка в Selenium, трябва да имаме обект на драйвер. Вземете драйвера от ITestContext, който трябва да бъде зададен в основната настройка, където е лесно да създадете нашия екземпляр на драйвер. Надявам се, че вие ​​сте наясно с това. Продължавайки напред, ще разгледаме демонстрацията, където ще ви помогна да разберете колко лесно е да направите екранна снимка в Selenium.

Тук ще обясня две различни програми, за да получите правилна представа за това как да направите екранна снимка в Selenium.

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

Снимка на екрана в Selenium WebDriver: Демонстрация

Първото нещо, което трябва да направите, когато искате да тествате уеб приложение, е да имате файловете Selenium Jar и библиотеките на Java. Можете да изберете IDE по ваш избор. Предпочитам да работя върху Eclipse IDE, защото е лесен за ползване.

  • Ще настроя драйвера на браузъра на
  • Инсталирайте екземпляра на драйвера с ChromeDriver.
  • Вземете URL адреса на уеб страницата.
  • Извършете съответните действия.

В този случай ще направя екранна снимка на официалната ни уеб страница

Вижте кода по-долу:

import java.io.File import java.io.IOException import org.apache.commons.io.FileUtils import org.openqa.selenium.OutputType import org.openqa.selenium.TakesScreenshot import org.openqa.selenium.WebDriver import org.openqa .selenium.chrome.ChromeDriver публичен клас Екран {public static void main (String [] args) хвърля изключение {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver_win32chromedriver.exe') WebDriver драйвер = нов WebDriver драйвер =) driver.get ('http://www.edureka.co/') TakesScreenshot ts = (TakesScreenshot) драйвер Файлов източник = ts.getScreenshotAs (OutputType.FILE) FileUtils.copyFile (source, new File ('./ Screenshots / Screen .png ')) System.out.println (' снимката на екрана е направена ') driver.quit ()}}

Изходът за горния код е показан по-долу:

ScreenOutput - Как да направите екранна снимка в Selenium - Edureka

И папката съдържа изображението

Сега нека разберем как да направим екранна снимка на неуспешния тест

  • Първо,
  • Добавете XML файла TestNG.
  • Добавете зависимостите на maven.
  • Създайте клас BaseClass, който съдържа екземпляра WebDriver.
  • Дефинирайте две функции, а именно инициализация () и неуспешна ()
  • Извикайте тези две функции в друг клас, демонстрация който наследява BaseClass.
  • Този демонстрационен клас съдържа двата метода setUp (), който извиква функцията за инициализация (), tearDown () помага при затваряне на драйвера и ScreenshotTest (), където заявяваме действителния и очаквания изход.
  • В този случай ще твърдя както истински, така и неверни, което води до неуспех на тестовия случай.
  • Създайте друг клас, ListenersClass, който помага на WebDriver да слуша конкретните събития.
  • Добавете този код в демо класа @Listeners (ListenersClass.class) преди основната функция, за да слушате тестовия случай.

Можете да се обърнете към този код:

BaseClass

пакет com.edureka import java.io.File import java.io.IOException import org.apache.commons.io.FileUtils import org.openqa.selenium.OutputType import org.openqa.selenium.TakesScreenshot import org.openqa.selenium.WebDriver внос org.openqa.selenium.chrome.ChromeDriver внос org.testng.annotations.Listeners обществена класа BaseClass {публично статично WebDriver шофьор публично статично невалидни инициализация () {System.setProperty ( 'webdriver.chrome.driver ',' C: UsersNeha_VaidyaDesktopchromedriver_win32chromedriver. exe ') driver = new ChromeDriver () driver.get (' http://www.edureka.co/ ')} public void failed () {File srcFile = ((TakesScreenshot) driver) .getScreenshotAs (OutputType.FILE) try {FileUtils.copyFile (srcFile, нов файл ('/ C: / Users / Neha_Vaidya / eclipse-workspace / Screens /' + 'ScreenshotsTaken / tests.jpg'))} catch (IOException e) {e.printStackTrace ()}} }

DemoClass

пакет com.edureka import org.testng.Assert import org.testng.annotations.AfterMethod import org.testng.annotations.BeforeMethod import org.testng.annotations.Listeners import org.testng.annotations.Test @Listeners (ListenersClass.class) public демонстрацията на класа разширява BaseClass {@BeforeMethod public void setUp () {Initilization ()} @AfterMethod public void tearDown () {driver.quit ()} @Test public void takeScreenshotTest () {Assert.assertEquals (true, false)}}

Слушатели Клас

пакет com.edureka import org.testng.ITestContext import org.testng.ITestListener import org.testng.ITestResult public class ListenersClass extends BaseClass implements ITestListener {public void onTestStart (ITestResult result) {// TODO Auto-generated method stub} public vosed onTSS (Резултат от ITestResult) {// TODO Auto-generated stub} public void onTestFailure (ITestResult result) {System.out.println ('Failed Test') failed ()} public void onTestSkipped (ITestResult result) {// TODO Auto- генериран метод stub} публична празнота onTestFailedButWithinSuccessPercentage (резултат от ITestResult) {// TODO Автоматично генериран мъниче метод} публична пустота onStart (контекст на ITestContext) {// TODO автоматично генериран метод метод} публична празнота onFinish (контекст ITestContext) {// TODO Auto -генериран мъниче от метод}}

Резултатът е изобразен по този начин:

С това стигаме до края на този блог „Как да направим екранна снимка в Selenium WebDriver“. Надявам се, че харесахте тази статия и разбрахте как да стартирате тестов случай. Имате въпрос към нас? Моля, споменете го в раздела за коментари на „Как да направите екранна снимка в Selenium WebDriver“ и ние ще се свържем с вас. Ако искате да научите повече за Selenium WebDriver и да изградите кариера в същото, тогава разгледайте нашата което се предлага с обучение под ръководството на инструктори на живо и опит в реалния живот на проекти. Това обучение ще ви помогне да разберете задълбочено тестване на селен и ще ви помогне да постигнете майсторство по темата.