Kako narediti posnetek zaslona v programu Selenium WebDriver



Ta članek o tem, kako narediti posnetek zaslona v programu Selenium WebDriver, vam pomaga naučiti, kako posneti posnetek zaslona z uporabo metode TakesScreenshot in poslušalcev TestNG

Avtomatizirano testiranje je opredelilo novo pipo sodobnega preizkušanja in tu bo ostalo. Če pa postopek testiranja ne uspe, bi bilo zelo neprijetno ponovno preizkusiti celoten skript. Tu so priročni posnetki zaslona, ​​saj pomagajo takoj odkriti napake na preizkusu. Skozi medij tega spletnega dnevnika se bomo naučili, kako narediti posnetek zaslona WebDriver.

Razpravljal bom o naslednjih temah:

Torej, začnimo, ljudje!





Posnetek zaslona v programu Selenium WebDriver: Zakaj je pri preizkušanju avtomatizacije potreben posnetek zaslona?

Posnetki zaslona so zaželeni za analizo napak. lahko med izvajanjem samodejno posname posnetke zaslona. Recimo, da napišete testni skript za avtomatizacijo spletne strani, ne bi več spremljali, ali vsakič deluje pravilno. Pustili bi, da scenarij opravi svoje delo, in bili bi zasedeni pri kakšnem drugem delu.

kateri ide je najboljši za javo
  • Posnetki zaslona nam pomagajo razumeti potek aplikacije in preveriti, ali se obnaša ustrezno.
  • Primerek WebDriver morate vtipkati na TakesScreenshot.
  • Pomaga med nastopom preskušanje navzkrižnega brskanja kot uporabnik zahteva ogled poročil o izvedbi
  • Sledenje izvedbi bi postalo veliko lažje, če delate v brskalniku brez glave.
  • Posnetek zaslona preizkusov, ki niso uspeli, je mogoče tudi enostavno posneti.

Zdaj pa pojdimo naprej in se naučimo, kako natančno lahko posnamete posnetek zaslona med preskušanjem aplikacije.



Posnetek zaslona v programu Selenium WebDriver: Kako zajeti posnetek zaslona v programu Selenium?

Za zajem posnetka zaslona v programu Selenium lahko uporabimo vmesnik, imenovan TakesScreenshot. Ta metoda ioznačuje gonilnik, da lahko posname posnetek zaslona in ga shrani na različne načine.

Sintaksa:



Datoteka datoteke = ((TakesScreenshot) gonilnik) .getScreenshotAs (OutputType.FILE) String screenshotBase64 = ((TakesScreenshot) gonilnik) .getScreenshotAs (OutputType.BASE64)

kje OutputType definira vrsto izhoda za posnetek zaslona.

Za zajem posnetka zaslona in shranjevanje na določenem mestu obstaja metoda, imenovana » getScreenshotAs '

Razumejmo to podrobno

Za razširitev WebDriver TakesScreenshot metoda si najbolj prizadeva, odvisno od brskalnika, da v prednostnem vrstnem redu vrne naslednje:

  • Celotno stran
  • Trenutno okno
  • Vidni del trenutnega okvira
  • Posnetek zaslona celotnega zaslona, ​​ki vsebuje brskalnik
  • Celotna vsebina elementa HTML - vidni del elementa HTML

Sintaksa:

X getScreenshotAs (OutputType (X). Target) vrže WebDriverException

kje

  • X je vrsta vrnitve metode
  • Target vsebuje ciljni naslov
  • Vrže če osnovna izvedba ne podpira zajemanja posnetka zaslona.

Testni primer ni uspel

je pripravil nekaj odličnih novih funkcij, ki znatno olajšajo testiranje aplikacije. To je zato, ker omogoča interakcijo zunaj peskovnika Javascript. Ena izmed novih uporabnih funkcij je, da lahko s spletnega pogona posnamete posnetke zaslona.

Posnetke zaslona lahko posnamete v kateri koli fazi testa, vendar se večinoma uporablja za preizkus ne uspe in snemanje posnetkov zaslona pomaga analizi, da lahko ugotovimo, kaj je šlo narobe med neuspehom testa. To lahko storite z uporabo Pripisi TestNG.

Za to najprej moram

  • Ustvarite razred in nato izvediteTestNG ‘ ITestListener ' .
  • Nato pokličite metodo ‘OnTestFailure’ .
  • Dodajte kodo za posnetek zaslona v tej metodi.
  • Namesto da naredite samo posnetek zaslona, ​​pridobite ime metode preskusa in naredite posnetek zaslona z imenom testa ter ga postavite v ciljno mapo.

Zdaj je vprašanje, kako s testNG pridobiti objekt gonilnika v razredu TestListeners?

Pomagal vam bom razumeti, kako enostavno je to narediti.

Če želite narediti posnetek zaslona v programu Selenium, moramo imeti objekt gonilnika. Pridobite gonilnik iz ITestContext, ki ga je treba nastaviti v osnovni nastavitvi, kjer je enostavno ustvariti naš primerek gonilnika. Upam, da vam je s tem jasno. V nadaljevanju si bomo ogledali predstavitev, kjer vam bom pomagal razumeti, kako enostavno je narediti posnetek zaslona v programu Selenium.

Tukaj bom razložil dva različna programa, da boste dobili pravilno predstavo o tem, kako narediti posnetek zaslona v programu Selenium.

Prvi program se ukvarja s tem, kako posneti posnetek zaslona uspešnega preizkusa. Drugi program vam pomaga razumeti, kako narediti posnetek zaslona med neuspehom preizkusa.

kako nastaviti pot v javi -

Posnetek zaslona v programu Selenium WebDriver: Demo

Ko želite preizkusiti spletno aplikacijo, morate najprej imeti datoteke Selenium Jar in knjižnice Java. Izberete lahko IDE po svoji izbiri. Raje delam na Eclipse IDE, ker je uporabniku prijazen.

  • Gonilnik brskalnika nastavim na
  • Instancirajte primerek gonilnika s ChromeDriverjem.
  • Pridobite URL spletne strani.
  • Izvedite ustrezna dejanja.

V tem primeru bom naredil posnetek zaslona naše uradne spletne strani

Glejte spodnjo kodo:

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 Zaslon javnega razreda {public static void main (String [] args) vrže izjemo {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver_win32chromedriver.exe') WebDriver voznik =) driver.get ('http://www.edureka.co/') TakesScreenshot ts = (TakesScreenshot) voznik Vir datoteke = ts.getScreenshotAs (OutputType.FILE) FileUtils.copyFile (vir, nova datoteka ('./ Screenshots / Screen .png ')) System.out.println (' posnetek zaslona je posnet ') driver.quit ()}}

Izhod za zgornjo kodo je prikazan spodaj:

ScreenOutput - Kako narediti posnetek zaslona v programu Selenium - Edureka

In mapa vsebuje sliko

Zdaj pa nam pojasnite, kako narediti posnetek zaslona preizkusa, ki ni uspel

  • Najprej,
  • Dodajte datoteko TestNG XML.
  • Dodajte odvisnosti maven.
  • Ustvarite razred BaseClass, ki vsebuje primerek WebDriver.
  • Določite dve funkciji, in sicer inicializacijo () in neuspešno ()
  • Pokličite ti dve funkciji v drug razred, demo ki podeduje BaseClass.
  • Ta demo razred vsebuje dve metodi setUp (), ki prikličeta funkcijo inicializacije (), tearDown () pomaga pri zapiranju gonilnika in ScreenshotTest (), kjer uveljavljamo dejanski in pričakovani izhod.
  • V tem primeru bom trdil, da je resnično in neresnično, kar povzroči neuspeh testnega primera.
  • Ustvarite drug razred, ListenersClass, ki WebDriverju pomaga poslušati določene dogodke.
  • To kodo dodajte v predstavitveni razred @Listeners (ListenersClass.class) pred glavno funkcijo, da boste lahko poslušali testni primer.

Lahko se sklicujete na to kodo:

system.exit (0) java

BaseClass

paket 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 uvoz org.openqa.selenium.chrome.ChromeDriver uvoz org.testng.annotations.Listeners javni razred BaseClass {javni statični gonilnik WebDriver javna statična voidna inicializacija () {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromchedwinverdervermromedverververmedromververdromedverververmedromververdromedvertopromedrivervedromedveriververomedveriververomedveriverdiromedverivervedromedverivervedromedveriverdiromedveriverdiromedveriverdiromedveriverdiromedveriverdiromedveriverdiromedveriverdiromedveriverdiromedveriri.pdf exe ') driver = new ChromeDriver () driver.get (' http://www.edureka.co/ ')} public void failed () {File srcFile = ((TakesScreenshot) driver) .getScreenshotAs (OutputType.FILE) try {FileUtils.copyFile (srcFile, nova datoteka ('/ C: / Users / Neha_Vaidya / eclipse-workspace / Screens /' + 'ScreenshotsTaken / tests.jpg'))} catch (IOException e) {e.printStackTrace ()}} }

DemoClass

paket 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 predstavitveni razred razširja BaseClass {@BeforeMethod public void setUp () {Initiation ()} @AfterMethod public void tearDown () {driver.quit ()} @Test public void takeScreenshotTest () {Assert.assertEquals (true, false)}}

PoslušalciKlasa

paket com.edureka import org.testng.ITestContext import org.testng.ITestListener import org.testng.ITestResult javni razred ListenersClass razširja BaseClass implementira ITestListener {public void onTestStart (rezultat ITestResult) {// TODO Auto-generated method stub} public vocess onTSS (Rezultat ITestResult) {// TODO Samodejno ustvarjena metoda} javna praznina onTestFailure (rezultat ITestResult) {System.out.println ('Failed Test') failed ()} public void onTestSkipped (rezultat ITestResult) {// TODO Auto- ustvarjena metoda stub} javna praznina onTestFailedButWithinSuccessPercentage (rezultat ITestResult) {// TODO Samodejno ustvarjena metoda stub} javna praznina onStart (kontekst ITestContext) {// TODO Samodejno ustvarjena metoda} javna praznina onFinish (kontekst ITestContext) {// TODO Auto -generirana škrbina metode}}

Rezultat je prikazan na ta način:

S tem smo zaključili ta blog »Kako narediti posnetek zaslona v programu Selenium WebDriver«. Upam, da ste uživali v tem članku in ste razumeli, kako voditi testni primer. Imate vprašanje za nas? Prosimo, omenite ga v oddelku za komentarje v 'Kako narediti posnetek zaslona v programu Selenium WebDriver', mi pa se vam bomo oglasili. Če želite izvedeti več o programu Selenium WebDriver in si v njem ustvariti kariero, si oglejte našo ki prihaja z usposabljanjem pod vodstvom inštruktorjev v živo in izkušnjami iz resničnega življenja Ta trening vam bo pomagal poglobljeno razumeti testiranje selena in vam pomagal doseči obvladovanje teme.