Cum să faceți o captură de ecran în Selenium WebDriver



Acest articol despre cum să faceți o captură de ecran în Selenium WebDriver vă ajută să aflați cum să capturați captura de ecran folosind metoda TakesScreenshot și ascultătorii TestNG

Testarea automatizării a definit un nou robinet de testare modernă și este aici pentru a rămâne. Cu toate acestea, dacă procesul de testare eșuează, ar fi extrem de incomod să re-testați întregul script. Aici capturile de ecran sunt la îndemână, deoarece ajută la detectarea instantanee a eșecurilor testelor. Prin intermediul acestui blog vom învăța cum să realizăm o captură de ecran WebDriver.

Voi discuta următoarele subiecte:

Deci, să începem, oameni buni!





Captură de ecran în Selenium WebDriver: De ce este necesară captura de ecran în testarea automatizării?

Capturile de ecran sunt de dorit pentru analiza erorilor. poate face automat capturi de ecran în timpul executării. Să presupunem că scrieți un script de testare pentru a automatiza o pagină web, nu ați continua să monitorizați pentru a vedea dacă funcționează corect de fiecare dată. Ai lăsa scenariul să-și facă treaba și ai fi ocupat în alte lucrări.

  • Capturile de ecran ne ajută să înțelegem fluxul aplicației și verificăm dacă se comportă corespunzător.
  • Trebuie să tipăriți instanța WebDriver în TakesScreenshot.
  • Vă ajută în timpul performanței testare de navigare încrucișată deoarece utilizatorul cere să vizualizeze rapoartele de execuție
  • Urmărirea execuției ar deveni mult mai ușoară dacă lucrați la un browser fără cap.
  • Captura de ecran a testelor care nu au reușit poate fi, de asemenea, capturată cu ușurință.

Acum, permiteți-ne să mergem mai departe și să aflăm cât de exact puteți face o captură de ecran în timp ce testați o aplicație.



Captură de ecran în Selenium WebDriver: Cum se captează captură de ecran în Selenium?

Pentru a captura o captură de ecran în Selenium, putem folosi o interfață, numită Captură de ecran. Această metodă iindică driverul că poate captura o captură de ecran și o poate stoca în diferite moduri.

Sintaxă:



Fișier fișier = ((TakesScreenshot) driver) .getScreenshotAs (OutputType.FILE) String screenshotBase64 = ((TakesScreenshot) driver) .getScreenshotAs (OutputType.BASE64)

Unde OutputType definește tipul de ieșire pentru o captură de ecran.

Pentru a captura captura de ecran și a o stoca într-o anumită locație, există o metodă numită „ getScreenshotAs '

Să înțelegem acest lucru în detaliu

Pentru extinderea WebDriver Captură de ecran metoda, acest lucru face cel mai bun efort în funcție de browser pentru a returna următoarele într-o ordine preferată:

  • Întreaga pagină
  • Fereastra curentă
  • Porțiune vizibilă a cadrului curent
  • O captură de ecran a întregului ecran care conține browserul
  • Întregul conținut al elementului HTML - Porțiunea vizibilă a elementului HTML

Sintaxă:

X getScreenshotAs (OutputType (X). Target) aruncă WebDriverException

Unde

  • X este tipul de returnare al metodei
  • Ținta deține adresa de destinație
  • Aruncă dacă implementarea de bază nu acceptă captarea capturilor de ecran.

Cazul de testare a eșuat

a venit cu câteva funcționalități noi, care facilitează testarea unei aplicații. Acest lucru se datorează faptului că permite interacțiunea în afara sandbox-ului Javascript. Una dintre noile funcționalități utile este posibilitatea de a face capturi de ecran de pe WebDriver.

conversie șir java la dată

Puteți face capturi de ecran în orice etapă a testului, dar, în cea mai mare parte, este utilizată pentru un test eșuează iar realizarea de capturi de ecran ajută analiza, astfel încât să putem vedea ce a mers prost în timpul eșecului testului. Acest lucru se poate face folosind Adnotări TestNG.

Pentru a face acest lucru, mai întâi, va trebui

  • Creați o clasă și apoi implementațiTestNG „ ITestListener ' .
  • Apelați apoi o metodă „OnTestFailure” .
  • Adăugați codul pentru a face captura de ecran în această metodă.
  • În loc să faceți doar captura de ecran, obțineți numele metodei de testare și faceți o captură de ecran cu numele testului și plasați-l în folderul de destinație.

Acum, întrebarea este cum să obțineți obiectul driver în clasa TestListeners folosind TestNG?

Vă voi ajuta să înțelegeți cât de ușor este să faceți acest lucru.

Pentru a face o captură de ecran în Selenium, trebuie să avem un obiect driver. Obțineți driverul din ITestContext, care trebuie setat în configurarea de bază, unde este ușor să creați instanța de driver. Sper să fiți clari cu asta. Mergând mai departe, vom arunca o privire asupra demonstrației, unde vă voi ajuta să înțelegeți cât de simplu este să faceți o captură de ecran în Selenium.

Voi explica două programe diferite aici, astfel încât să aveți o idee corectă despre cum să faceți o captură de ecran în Selenium.

Primul program se ocupă cu modul de a captura cu succes o captură de ecran a cazului de testare. Al doilea program vă ajută să înțelegeți cum să faceți o captură de ecran în timpul eșecului testului.

Captură de ecran în Selenium WebDriver: Demo

Primul lucru de făcut atunci când doriți să testați o aplicație web este să aveți fișierele Selenium Jar și bibliotecile Java. Puteți alege un IDE la alegere. Prefer să lucrez la Eclipse IDE, deoarece este ușor de utilizat.

  • Voi seta driverul browserului la
  • Instantați instanța driverului cu ChromeDriver.
  • Obțineți adresa URL a paginii web.
  • Efectuați acțiuni corespunzătoare.

În acest caz, voi face o captură de ecran a paginii noastre web oficiale

Consultați codul de mai jos:

care dintre următoarele sunt exemple de declarații de control?
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 class Screen {public static void main (String [] args) throws Exception {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver_win32chromedriver.exe') WebDriver driver = new ChromeDriver driver.get ('http://www.edureka.co/') TakesScreenshot ts = (TakesScreenshot) driver Sursă fișier = ts.getScreenshotAs (OutputType.FILE) FileUtils.copyFile (sursă, fișier nou ('./ Screenshots / Screen .png ')) System.out.println (' Captura de ecran este luată ') driver.quit ()}}

Ieșirea pentru codul de mai sus este descrisă mai jos:

ScreenOutput - Cum să faceți captură de ecran în Selenium - Edureka

Și folderul conține imaginea

Acum, să înțelegem cum să realizăm o captură de ecran a testului eșuat

  • Primul,
  • Adăugați fișierul TestNG XML.
  • Adăugați dependențele maven.
  • Creați o clasă BaseClass care conține instanța WebDriver.
  • Definiți două funcții și anume inițializare () și eșuat ()
  • Apelați aceste două funcții într-o altă clasă, demo care moștenește BaseClass.
  • Această clasă Demo deține cele două metode setUp () care apelează funcția initialization (), tearDown () ajută la închiderea driverului și ScreenshotTest () unde afirmăm ieșirea reală și cea așteptată.
  • În acest caz, voi afirma atât adevărat, cât și fals, ceea ce duce la eșecul cazului de testare.
  • Creați o altă clasă, ListenersClass, care ajută WebDriver să asculte evenimentele particulare.
  • Adăugați acest cod în clasa demonstrativă @Listeners (ListenersClass.class) înainte de funcția principală pentru a asculta cazul de testare.

Puteți consulta acest cod:

BaseClass

pachet 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 import org.openqa.selenium.chrome.ChromeDriver import org.testng.annotations.Listeners public class BaseClass {public static WebDriver driver public static void initialization () {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver_win32ch. exe ') driver = new ChromeDriver () driver.get (' http://www.edureka.co/ ')} public void a eșuat () {File srcFile = ((TakesScreenshot) driver) .getScreenshotAs (OutputType.FILE) try {FileUtils.copyFile (srcFile, nou File ('/ C: / Users / Neha_Vaidya / eclipse-workspace / Screens /' + 'ScreenshotsTaken / tests.jpg'))}} catch (IOException e) {e.printStackTrace ()}} }

DemoClass

package 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 demo-ul clasei extinde BaseClass {@BeforeMethod public void setUp () {initialization ()} @AfterMethod public void tearDown () {driver.quit ()} @Test public void takeScreenshotTest () {Assert.assertEquals (true, false)}}

Clasa ascultătorilor

package com.edureka import org.testng.ITestContext import org.testng.ITestListener import org.testng.ITestResult public class ListenersClass extends BaseClass implements ITestListener {public void onTestStart (rezultatul ITestResult) {// TODO Metodă generată automat stub} public void onTestSuccess (Rezultatul ITestResult) {// TODO Metodă generată automat stub} public void onTestFailure (rezultatul ITestResult) {System.out.println ('Test nereușit') a eșuat ()} public void onTestSkipped (rezultatul ITestResult) {// TODO Auto- generat stub} public void onTestFailedButWithinSuccessPercentage (ITestResult result) {// TODO Auto-generate method stub} public void onStart (ITestContext context) {// TODO Auto-generate method stub} public void onFinish (ITestContext context) {// TODO Auto -metodă generată stub}}

Rezultatul este descris în acest mod:

Cu aceasta, ajungem la sfârșitul acestui blog „Cum să faceți o captură de ecran în Selenium WebDriver”. Sper că ați plăcut acest articol și ați înțeles cum să rulați un caz de testare. Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii din „Cum să faceți o captură de ecran în Selenium WebDriver” și vă vom răspunde. Dacă doriți să aflați mai multe despre Selenium WebDriver și să construiți o carieră în același timp, consultați pagina noastră care vine cu instruire live condusă de instructor și experiență de proiect din viața reală. Această instruire vă va ajuta să înțelegeți testul de seleniu în profunzime și vă va ajuta să obțineți stăpânirea asupra subiectului.