Kā uzņemt ekrānuzņēmumu Selenium WebDriver



Šis raksts par ekrānuzņēmuma uzņemšanu programmā Selenium WebDriver palīdz uzzināt, kā uzņemt ekrānuzņēmumu, izmantojot TakesScreenshot metodi un TestNG klausītājus.

Automatizācijas testēšana ir definējusi jaunu mūsdienu testēšanas jaucējkrānu, un tas ir šeit, lai paliktu. Tomēr, ja testēšanas process neizdodas, būtu ļoti neērti atkārtoti pārbaudīt visu skriptu. Šeit ekrānšāviņi ir noderīgi, jo tie palīdz uzreiz atklāt testa kļūmes. Izmantojot šo emuāru, mēs uzzināsim, kā uzņemt ekrānuzņēmumu Web draiveris.

Es apspriedīšu šādas tēmas:

Tātad, sāksim, ļaudis!





Ekrānuzņēmums Selenium WebDriver: Kāpēc automatizācijas testēšanā ir nepieciešama ekrānuzņēmums?

Kļūdu analīzei ir vēlami ekrānuzņēmumi. izpildes laikā var automātiski uzņemt ekrānuzņēmumus. Pieņemsim, ka jūs rakstāt testa skriptu, lai automatizētu tīmekļa lapu, jūs nepārtraukti neuzraudzītu, vai tas katru reizi darbojas pareizi. Jūs ļautu skriptam veikt savu darbu un jūs nodarbinātos ar kādu citu darbu.

  • Ekrānuzņēmumi palīdz mums saprast lietojumprogrammu plūsmu un pārbauda, ​​vai tā darbojas atbilstoši.
  • Jums ir jāpievieno WebDriver eksemplārs uz TakesScreenshot.
  • Tas palīdz, kamēr jūs uzstājaties savstarpējas pārlūkošanas testēšana tā kā lietotājam ir nepieciešams apskatīt izpildes pārskatus
  • Izpildes izsekošana kļūtu daudz vienkārša, ja strādājat ar pārlūku bez galvas.
  • Arī testu, kas neizdevās, ekrānuzņēmumu var viegli uzņemt.

Ļaujiet mums virzīties uz priekšu un uzzināt, kā tieši jūs varat uzņemt ekrānuzņēmumu, testējot lietojumprogrammu.



Ekrānuzņēmums Selenium WebDriver: kā uzņemt ekrānuzņēmumu Selenium?

Lai uzņemtu ekrānuzņēmumu Selenium, mēs varam izmantot interfeisu, ko sauc Notiek ekrānuzņēmums. Šī metode inorāda draiveri, ka tas var uzņemt ekrānuzņēmumu un saglabāt to dažādos veidos.

kāda ir atšķirība starp c ++ un java

Sintakse:



Faila fails = [[TakesScreenshot] draiveris] .getScreenshotAs (OutputType.FILE) virknes screenshotBase64 = [(TakesScreenshot) draiveris] .getScreenshotAs (OutputType.BASE64)

kur OutputType nosaka ekrānuzņēmuma izvades veidu.

Lai uzņemtu ekrānuzņēmumu un saglabātu to noteiktā vietā, ir metode ar nosaukumu “ getScreenshotAs '

Sapratīsim to sīkāk

WebDriver paplašināšanai Notiek ekrānuzņēmums metodi, atkarībā no pārlūkprogrammas tiek pieliktas vislabākās pūles, lai vēlamajā secībā atgrieztu:

  • Visa lapa
  • Pašreizējais logs
  • Redzamā pašreizējā kadra daļa
  • Visa displeja, kurā atrodas pārlūks, ekrānuzņēmums
  • Viss HTML elementa saturs - redzamā HTML elementa daļa

Sintakse:

X getScreenshotAs (OutputType (X). Target) met WebDriverException

kur

  • X ir metodes atgriešanas veids
  • Mērķis satur galamērķa adresi
  • Metieni ja pamatā esošā ieviešana neatbalsta ekrānuzņēmumu tveršanu.

Pārbaudes lieta neizdevās

ir nācis klajā ar lieliskām jaunām funkcijām, kas ievērojami atvieglo lietojumprogrammas testēšanu. Tas ir tāpēc, ka ļauj mijiedarboties ārpus Javascript smilškastes. Viena no jaunajām noderīgajām funkcijām ir iespēja uzņemt ekrānuzņēmumus no WebDriver.

izmantojot nosaukumvietu c ++

Ekrānuzņēmumus varat uzņemt jebkurā testa posmā, taču pārsvarā to izmanto testa laikā neizdodas un ekrānuzņēmumu uzņemšana palīdz veikt analīzi, lai mēs varētu redzēt, kas neizdevās testa neveiksmes laikā. To var izdarīt, izmantojot TestNG anotācijas.

Lai to izdarītu, vispirms man tas būs nepieciešams

  • Izveidojiet klasi un pēc tam ieviesietTestNG ’ ITestListener ' .
  • Pēc tam izsauciet metodi ‘OnTestFailure’ .
  • Pievienojiet kodu, lai šajā metodē uzņemtu ekrānuzņēmumu.
  • Tā vietā, lai vienkārši uzņemtu ekrānuzņēmumu, iegūstiet testa metodes nosaukumu un uzņemiet ekrānuzņēmumu ar testa nosaukumu un ievietojiet to mērķa mapē.

Tagad rodas jautājums, kā iegūt draivera objektu klasē TestListeners, izmantojot TestNG?

Es jums palīdzēšu saprast, cik viegli to izdarīt.

Lai uzņemtu ekrānuzņēmumu Selenium, mums ir jābūt draivera objektam. Iegūstiet draiveri no ITestContext, kas jāiestata bāzes iestatījumā, kur ir viegli izveidot mūsu draivera instanci. Ceru, ka jums, puiši, ir skaidrs ar to. Pārejot uz priekšu, mēs apskatīsim demonstrāciju, kurā es jums palīdzēsim saprast, cik vienkārši ir veikt ekrānuzņēmumu Selenium.

Es šeit izskaidrošu divas dažādas programmas, lai iegūtu pareizu priekšstatu par to, kā uzņemt ekrānuzņēmumu Selenium.

Pirmā programma nodarbojas ar to, kā veiksmīgi uzņemt testa gadījuma ekrānuzņēmumu. Otrā programma palīdz saprast, kā testa laikā neizpildīt ekrānuzņēmumu.

Ekrānuzņēmums Selenium WebDriver: Demonstrācija

Pirmā lieta, kas jādara, kad vēlaties pārbaudīt tīmekļa lietojumprogrammu, ir Selenium Jar failu un Java bibliotēku pieejamība. Jūs varat izvēlēties IDE pēc savas izvēles. Es gribētu strādāt pie Eclipse IDE, jo tas ir lietotājam draudzīgs.

  • Es iestatīšu pārlūka draiveri uz
  • Instantējiet draivera instanci ar ChromeDriver.
  • Iegūstiet tīmekļa lapas URL.
  • Veiciet atbilstošās darbības.

Šajā gadījumā es uzņemšu mūsu oficiālās vietnes ekrānuzņēmumu

Skatiet zemāk esošo kodu:

importēt java.io.File importēt java.io.IOException importēt org.apache.commons.io.FileUtils importēt org.openqa.selenium.OutputType importēt org.openqa.selenium.TakesScreenshot importēt org.openqa.selenium.WebDriver importēt org.openqa .selenium.chrome.ChromeDriver publiskās klases ekrāns {public static void main (String [] args) izmet izņēmumu {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver_win32chromedriver.exe') WebDriver draiveris = jauns ChromeDriver (jauns ChromeDriver driver.get ('http://www.edureka.co/') TakesScreenshot ts = (TakesScreenshot) draivera faila avots = ts.getScreenshotAs (OutputType.FILE) FileUtils.copyFile (avots, jauns fails ('./ Ekrānuzņēmumi / Ekrāns) .png ')) System.out.println (' Ekrānuzņēmums ir uzņemts ') driver.quit ()}}

Iepriekš minētā koda izvade ir attēlota zemāk:

ScreenOutput - kā veikt ekrānuzņēmumu Selenium - Edureka

Un mapē ir attēls

kas ir gadījums java

Ļaujiet mums saprast, kā neizdevās veikt testa ekrānuzņēmumu

  • Pirmkārt,
  • Pievienojiet TestNG XML failu.
  • Pievienojiet maven atkarības.
  • Izveidojiet klases BaseClass, kurā atrodas WebDriver instance.
  • Definējiet divas funkcijas, proti, inicializāciju () un neizdevās ()
  • Zvaniet šīm divām funkcijām citā klasē, demonstrācija kas pārmanto BaseClass.
  • Šajā demonstrācijas klasē ir divas metodes setUp (), kas izsauc inicializācijas () funkciju, tearDown () palīdz aizvērt draiveri un ScreenshotTest (), kur mēs apgalvojam faktisko un paredzamo rezultātu.
  • Šajā gadījumā es apgalvošu gan patiesu, gan nepatiesu, kā rezultātā testa lieta nav veiksmīga.
  • Izveidojiet citu klasi - ListenersClass, kas palīdz WebDriver klausīties konkrētos notikumus.
  • Pievienojiet šo kodu demo klasei @Listeners (ListenersClass.class) pirms galvenās funkcijas, lai noklausītos testa gadījumu.

Jūs varat atsaukties uz šo kodu:

BaseClass

pakete com.edureka import java.io.File importēšana 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ēt org.openqa.selenium.chrome.ChromeDriver importēt org.testng.annotations.Klausītāji publiskā klase BaseClass {publiskā statiskā WebDriver draivera publiskā statiskā tukšuma inicializācija () {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver exe ') draiveris = new ChromeDriver () driver.get (' http://www.edureka.co/ ')} public void neizdevās () {File srcFile = ((TakesScreenshot) draiveris). tryScreenshotAs (OutputType.FILE) mēģiniet {FileUtils.copyFile (srcFile, new File ('/ C: / Users / Neha_Vaidya / eclipse-workspace / Screens /' + 'ScreenshotsTaken / tests.jpg'))} catch (IOException e) {e.printStackTrace ()}} }

DemoClass

pakete com.edureka import org.testng.Assert import org.testng.annotations.AfterMethod importēt org.testng.annotations.BeforeMethod importēt org.testng.annotations.Klausītāji importēt org.testng.annotations.Test @Listeners (ListenersClass.class) public klases demonstrācija paplašina BaseClass {@BeforeMethod public void setUp () {initialization ()} @AfterMethod public void tearDown () {driver.quit ()} @Test public void takeScreenshotTest () {Assert.assertEquals (true, false)}}

Klausītāju klase

pakete com.edureka import org.testng.ITestContext import org.testng.ITestListener import org.testng.ITestResult publiskā klase ListenersClass paplašina BaseClass īsteno ITestListener {public void onTestStart (ITestResult result) {// TODO Auto-generated method stub} public void onTestSu (ITestResult result) {// TODO Auto-generated method stub} public void onTestFailure (ITestResult result) {System.out.println ('Failed Test') fail ()} public void onTestSkipped (ITestResult result) {// TODO Auto- generated method stub} public void onTestFailedButWithinSuccessPercentage (ITestResult result) {// TODO Auto-generated method stub} public void onStart (ITestContext context) {// TODO Auto-generated method stub} public void onFinish (ITestContext context) {// TODO Auto -ģenerēta metode stub}}

Rezultāts tiek attēlots šādi:

Ar to mēs esam nonākuši pie šī emuāra “Kā uzņemt ekrānuzņēmumu Selenium WebDriver”. Es ceru, ka jūs, puiši, izbaudījāt šo rakstu un sapratāt, kā vadīt testa gadījumu. Vai mums ir jautājums? Lūdzu, pieminējiet to komentāru sadaļā “Kā uzņemt ekrānuzņēmumu Selenium WebDriver”, un mēs ar jums sazināsimies. Ja vēlaties uzzināt vairāk par Selenium WebDriver un veidot karjeru tajā pašā laikā, pārbaudiet mūsu kas nāk ar instruktoru vadītu tiešraides apmācību un reālās dzīves projektu pieredzi. Šīs apmācības palīdzēs jums padziļināti izprast selēna testēšanu un palīdzēs jums apgūt priekšmetu.