Gradatim Page Object Model in cupresso cum Exempla

Page Object Model: Quod vulgo dicitur ARBORpopulare exemplar in quavis compage automation. Pagina Object exemplar etiam in Cupresso applicari potest. Pagina Object Exemplar multa commoda habet in creando compage pro test automatione, ut in reducendo codicem duplicationem et conservationem augendi et promptitudinis. Cupressus nobis praebet flexibilitatem ad incorporandi Page Object Exemplar in test script. In hoc articulo, videbimus ad creandam paginam Objectum exemplar in cypressus gradus gradatim cum exemplis.

Table of Contents:

cupressus page objectum exemplar
Cupressus Page Object Model

Quod est exemplar paginae Object?

Page Object Model exemplar est consilium ubi res paginae ab automation scriptorum testium separantur. Automatio probatio multa nobis pressionibus quae in probatione prosunt; attamen aliqui sunt eventus ut codice duplicatione et incremento in periculo conservabilitatis sicut project crescit. In exemplo POM intelligamus significationem.

Plures paginas considera in applicatione nostra sicut Login Page, Registration Page, et in pagina Libri Volatus.

  • Login pagina continet omnia elementa interretialis functionalities
  • In Registration continet omnes modos ac elementa interretialis processus electronici
  • Volatus Liber elementa paginae volatus continentes paginae volatus

Tres casus probandi sunt, scilicet TC1, TC2, TC3.

  • TC1 continet casus electronici test.
  • TC2 continet login et adnotatione test casibus
  • TC3 continet login, adnotationem, et fugam libri testium causarum
fuga booking
Exemplum sine POM

Iam pagina login cum TC1.

Pagina Registration debet inter se occurrunt cum TC1 et TC2 et

Fuga pagina libri inter se occurrunt cum TC1, TC2 et TC3

Ut vides, communes sunt functiones inter omnes tres casus probati. Loco scribendi modos et locatores login in omni casuum testium lima, separatim eas habere possumus et eas per tabellas accedere. Sic codice non iteratur, et facile legitur.

Unus ex optimis exercitiis in coding notio vocatur COQUO. Significat Noli repetere te ipsum. Forma plena, ut clare dicit, lineas codicis iterum atque iterum repetere non debemus. Hoc ut vincamus, Page Object Model magni momenti munus in optimis coding exercitiis agit.

Page Object Model Framework Architecture

quod page objectum exemplar compage Architectura probata est architectura quae simplicibus modis customize potest. Hodie omnes fere societates methodologias agiles sequuntur, quae continuam integrationem, progressionem et probationem implicant. Testium automation conservare compagem test ad operandum e regione processus evolutionis cum " Page Object Model. Significans est test compage automation consilio ratio servans ut signum novis lineamentis crescit.

Pagina objectum est consilium exemplar quod est objectum ordinatum genus quod correspondet paginae applicationis quam tentamus. Page Object comprehendit Page Classis et test casibus,Page class constat modis ac locatoribus interretialibus interretialibus. Singulas classes ad singulas paginas in applicatione creamus. Singulas methodos creabimus pro singulis functionibus et eas in nostro spec- tario accessu.

Page Classis
Page Object Model

Exemplar in cupresso commoda utendi Page Object

  1. Modi sunt reusable per totum inceptum facile est ponere, cum res crescat. Lineae codice facti sunt minus readable et ipsum.
  2. Page Object Exemplum insinuat quod separamus res et influunt quod peragimus in UI e* verificationem vestigia. Cum exemplum POM sequimur, scribere solemus mundum facile cognoscibilia codice.
  3. Cum Pagina Object Model, objects et test casibus, inter se sunt sui iuris. Dicere possumus obiecta alicubi trans propositum. Hoc modo, si diversis instrumentis utimur sicut TestNG/Junitus ad probationem muneris vel Cucumeris ad probationem suscipiendam, facile tunc est. accessible.

Gradatim Page Object Model cupressus cum Exemplum

Haec sectio intelleget quomodo creare paginam Objectum Model in Cupressus cum real-time exempla quod in inceptis efficere possumus. Intellebimus ex elementis paroecialibus et gradatim processum ad faciendum paginam Objectum exemplar.

De missione agamus qua munera in hoc exemplo scribemus.

  1. navigare https://admin-demo.nopcommerce.com/ website
  2. Intra valida username et password
  3. Click in Puga pyga Login
  4. Domicilium convalidandum sive appensum est /admin post login

Duas tabellas creabimus - unum fasciculum PageObjectum et unum documentum spec- tantium huius exempli. Incipiamus!

Step 1: Aperi consilium nostrum in codice VS. Creare folder dicitur PageObject sub integrationem folder. Sub hoc folder, paginam pro quolibet modulorum objecto creare potes.

anysnap 26 aug 2021 ad 7 08 10 pm
Novus folder nomine PageObject

Step 2: File crea nomine LoginPage.js sub PageObject folder. In LoginPage.js, scribemus modos qui officia login cum implicant.

anysnap 26 aug 2021 ad 8 33 13 pm
LoginPage.js creatio in folder PageObject

Step 3: Primum test modum in scribendo incipiamus in LoginPage.js * fasciculus. Primum genus creare debemus quod in spec- taria nostra educendi erimus. Invocabimus nostrum genus ut LoginPage

class LoginPage {}

Ex nostro pseudocode, primus gradus est navigare ad Domicilium. Invocabimus nostrum modum ut navigate(). Intus modum navigandi, adjiciemus cy.visit() munus a cupresso.

 navigate() { cy.visit('https://admin-demo.nopcommerce.com/') }

anysnap 26 aug 2021 ad 8 51 29 pm
navigare modum

Step 4: Nunc usoris inire debebimus in campo nostro electronico. Nos modum nostrum nominabimus enterEmail (). Primum locatorem campi electronici debemus accipere et ad eas accedere via cy.get() mandatum. Deinde utentes agro purgabimus clear() iubes et adde usoris usura the type() mandatum. In methodo nostra transimus modulum More ut de valore in amet. Hoc modo servamus genus hoc methodo accedere, si alia inscriptio id exigitur.

enterEmail(usoris) { cy.get('[id=Email]').clear() cy.get('[id=Email]').type(nomen usoris); revertere}

Pro scribebat cy.get() bis in codice superiore imperare, simpliciter eos cum theca fascia possumus dotem, operator.

  enterEmail(username) { cy.get('[id=Email]') .clear() .type(usoris); revertere}

anysnap 26 aug 2021 ante 9 01 21 pm 1
enterEmail modum

Ut animadvertit return this in acie IX. haec quod indicat enterEmail modum maxime pertinet ad LoginPage classis. Plerumque, haec genus repraesentat.

Step 5: Tesserae methodum creandi similem methodo electronicae nostrae habemus. Invocabimus nostrum password modum ut enterPassword(). Initio locatorem tesserae dabimus, campum purgare et valorem initus typus. Praeteribo modulum ad methodum nostram vocatam pswd et accessum in type() mandatum.

enterPassword(pswd) { cy.get('[id=Password]') .clear() .type(pswd) hoc redde }
Screenshot 2021 08 26 apud 9.54.47 PM
enterPassword modum

Step 6: Novissima methodus nostra esset ut deprimendo deprimendo login. Modum nostrum nominabimus submit(). Locator utendo et click in puga pyga dabimus tibi click() modum cupressi.

 submit() { cy.get('[type=submit]').click() }

Screenshot 2021 08 26 apud 9.57.55 PM
submittere modum

Ego morsque dividimur 7: Nunc hoc genus exportare debemus ut trans fasciculum nostrum utamur. Hoc enim modo unam lineam extra genus nostrum addimus, eamque in spec- lis fasciculi facile possumus accedere.

export default LoginPage

Screenshot 2021 08 26 apud 10.01.24 PM
export imperium

euge! Paginam Objectum fasciculi pro incepto nostro creavimus. Satis simplex ac facile fuit!

Accessing the Page Objects in Spec file

Nunc ad limam casus experiendi accedamus. Habemus fasciculum speciosum in folder integratione nostra creare. Invocabimus nostrum spec file POMDemo.spec.js.

anysnap 27 aug 2021 ad 12 01 59 pm
POMDemo.spec.js file creationis

Step 1: Ut rationes nostras in tabula LoginPage.js accedere debeamus import eos in nostrum spec- file. Importamus importamus utendo enuntiatione. Navigare ad LoginPage.js lima utendo ../

In nobis, semita est ../integration/PageObject/LoginPage. Ita, propositio importata, vide aliquid simile infra.

import LoginPage from "../integration/PageObject/LoginPage"

Step 2Cum Mocha utimur, casus probatus scribemus intus describe() et it() obstruere. describere () repraesentat * test suiteet () repraesentat test causa. Ambae caudices functio sunt et chordam parametri accipiant quae thecam includit Description de test.

describe ("Cypressus POM Test Suite", munus () {})

anysnap 27 aug 2021 ad 12 17 00 pm
Describere obstructionum

Intra scandalum describere, nostra scribemus it() addendo descriptionem quam login cum valida documentorum.

illud("Login cum validis documentorum", function (){})

anysnap 27 aug 2021 ad 12 20 54 pm
hoc angustos

Step 3: Ut rationes nostras ex pagina objecti fasciculi accessimus, exemplum pro genere Login nostro creare debemus. Ad instantiam pro genere login creare debemus, oportet variam declarare et eam nostro generi limae utendo assignare new keyword. Cum variabili declarata, facile methodos e Pagina objecti limare possumus accedere.

                                               const login = new LoginPage();
anysnap 27 aug 2021 ad 1 05 50 pm
Exemplum de genere

Nota: Cum variabilis login, methodos e Pagina objecti classis accedere possumus. Cum satus typing login. , vscode suggestiones omnium methodorum in pagina LoginPage.js enumerabit. Hoc adiuvat ut cognoscamus nos recte classem nostram exportatam et importatam esse!

Step 4: Invocemus nostrum navigate() modum visitandi domicilium. Haec est prima actio in nostra examinis causa.

/// import LoginPage from "./PageObject/LoginPage" describe("Cypressus POM Test Suite", function () {it("Login with valid documental", function () { const login = new LoginPage(); });

Step 5: usoris in inscriptionem electronicam inire debemus. Nos accedere ad enterEmail() apud Login est. enterEmail() modum accipit parametri More. Ita transire debemus valorem pro usoris ut a Gloria in spec file

/// import LoginPage from "./PageObject/LoginPage" describe("Cypressus POM Test Suite", function () {it("Login with valid documental", function () { const login = new LoginPage(); login.enterEmail('admin@yourstore.com'); }) })

Step 6: Similem gradum 5 appellamus nostrum enterPassword() modum transeundo signum ut modulus in chorda.

/// import LoginPage from "./PageObject/LoginPage" describe("Cypressus POM Test Suite", function () {it("Login with valid documental", function () { const login = new LoginPage(); login.enterEmail('admin@yourstore.com'); login.enterPassword('admin'); }) })

Step 7: Dein, deprimendo in deprimendo login habemus. Invocabimus modum submit() ex pagina objecti lima.

/// import LoginPage from "./PageObject/LoginPage" describe("Cypressus POM Test Suite", function () {it("Login with valid documental", function () { const login = new LoginPage(); login.enterEmail('admin@yourstore.com'); login.enterPassword('admin'); login.submit();}) })

Step 8: Post colligationem, domicilium asserere debemus. Cognoscimus num domicilium est aequalis ad domicilium post login. Pro assertione nos utemur in Chai assertio bibliothecae, quae cupresso inaedificata est.

/// import LoginPage from "./PageObject/LoginPage" describe("Cypressus POM Test Suite", function () {it("Login with valid documental", function () { const login = new LoginPage(); login.enterEmail('admin@yourstore.com'); login.enterPassword('admin'); .nopcommerce.com/admin/') }) })

anysnap 27 aug 2021 ad 4 39 36 pm
Test login causa

Supra imaginem repraesentet login test casum. Probationem rei cum pagina Object Model cum paucissimis gradibus simplicibus scribere potuimus. Nunc percurramus probationem et exitum videamus.

Aperiemus cupressum test cursorem et deprime in spec- lima et in casu nostro examinis curremus. Reprehendo hoc articulus in quam apertum cupressus test cursor.

anysnap 27 aug 2021 ante 1 41 55 pm 2
Test Proventus in Cupresso

euge! Exemplar paginae Object Exemplar in Cupresso feliciter scripsimus. Hanc formam in inceptis real-time incorporare possumus. Multi modi sunt quae methodos in pagina objecti fasciculi scribere possumus. Exemplum vobis demonstravi quod vexillum est et opera cuiuslibet rei. Scribere etiam potes solum munus reditus in pagina quod lima et deprime et genus directe in spec- file.

Videbimus aliud exemplar quo in documento uti possumus. Haec methodus etiam perfecte laborabit.

In hoc genere, solum locatorem munus in methodo nostra reddemus et actiones in tabella testificabimus. Nos codicem scribemus pro eadem missione supra vidimus.

Page Object - LoginPage.js

class LoginPage { navigate() { cy.visit('https://admin-demo.nopcommerce.com/') } enterEmail() { return cy.get('[id=Email]') } enterPassword() { return cy.get('[id=Password]') } submit() { return cy.get('[type=submit]') } } export default LoginPage

Sicut supra vidimus, locator intra munus nostrum solum scribimus et reddens. Reditus significat modum peculiarem ad " genus LoginPage.js. Non addimus actiones in methodis nostris.

anysnap 27 aug 2021 ad 4 48 05 pm
Page Object File exemplum

Spec File - POMDemo.spec.js

Exemplum videbimus accessionis methodi in spec- taria.

/// import LoginPage from "./PageObject/LoginPage" describe("Cypressus POM Test Suite", function () {it("Login with valid documental", function () { const login = new LoginPage(); login.enterEmail().clear() login.enterEmail().type('admin@yourstore.com'); submittere().click();cy.url().ut('be.equal', 'https://admin-demo.nopcommerce.com/admin/') });

Screenshot 2021 08 28 apud 7.35.20 PM
Spec file Exemplum

Hic modum e fasciculo PageObjecti vocamus et actiones probatae causae exercemus. Primum ergo nos vocamus variabilia nostra referentia Login ac deinde cum appendice methodo enterEmail() postremo appensione actionis genus. In nobis type(), transimus nomen usoris pretium.

anysnap 27 aug 2021 ante 1 41 55 pm 3
Test Result

Ut vides, omnia praecepta sunt exsecuta, et probata causa praeteriit.

Utramvis eligere potes utram Page Object Exemplar tuum consilium ac sententiam tuam conveniat. Non est inhaerere uni soli rationi praecipuae regulae.

Quomodo fixturis uteris pro Testi Data Source in Pagina Object Exemplar in Cupresso?

Exemplar paginae nostrae in Objectivis exemplis, valorem usoris et tesserae usoris in directo vel in pagina Objecti lima vel directe in tabula testandi transegimus. Hanc sectionem intelliget quomodo utatur adfixa in cupresso incolumem servare data non est obnoxia. Conemur servare omnia documentorum et notitias in uno fasciculo et ad eas accedere. Hoc modo facile est ponere, et notitia sensitiva sicut username et tesserae non exponuntur. Haec methodus est etiam una rationum, quam in Page Object Pattern sequi oportet.

Ut ante dictum est, Fixtura adiuvat notitias copiarum in fasciculo JSON vel fasciculi excelsi, vel bibliothecam externam sicut Apache POI .. His data utemur, variabili creando et in lima spec- tificando eas access. Intelligamus exemplo.

Cupressus vocatur a folder praebet "adfixa. Nos creare a JSON file vocavit documentorum.JSON sub 'fixa' folder.

Screenshot 2021 08 28 apud 6.58.39 PM
JSON file creationis

Declaramus nomen usoris, tesserae et valores URL quos convalidandum in forma JSON in " documentorum.json lima.

{ "usoris" : "admin@yourstore.com", "password" : "admin", "adminUrl" : "https://admin-demo.nopcommerce.com/admin/" }

Screenshot 2021 08 28 apud 7.30.53 PM
Transeuntes valores in documentorum.json file

Accessing valores ex file JSON in test casus lima

Cum bona in file JSON nostra definivimus, eas in causa lima testandi adhibebimus fixtures de cupresso. Nos accedere ad valorem JSON cum haec keyword. Sit scriptor munus in involvunt fixture ante () obstructionum.

describe("Cypressus POM Test Suite", function () { ante(munus () { cy.fixture('credentiales').

cy.fixture(credentials').tunc(munus testdata){ this.testdata = testdata }) - Haec linea repraesentat nos transeuntes documentorum.json file pro modulo nostro cy.fixture () mandatum. Hic non requirimus utrum lima JSON sit. Tantum nomen tabella solus transiet. Postea transimus test notitia ut modulus ad munus ac accessum test notitia variabilis usus haec.

/// import LoginPage from "./PageObject/LoginPage" describere("Cypressus POM Test Suite", function () { before(function() { cy.fixture('credentiales'). }) }) it("Login with valid documents", function () { const login = new LoginPage(); login.navigate(); login.enterEmail(this.testdata.username) login.enterPassword(this.testdata.password ) login.submit();cy.url()('be.aequale', this.testdata.adminUrl) });

login.enterEmail (this.testdata.username) - Hoc valorem usoris ex documentorum.json adducet et in agrum electronicum implebit.

login.enterPassword (this.testdata.password) - Hoc tesseram pretii ex documentorum.json lima afferet et in tesseram agri implebit

cy.url (). debet ('be.equal', this.testdata.adminUrl) - Hoc erit adminUrl ex documentorum.json lima et selige in assertione

Screenshot 2021 08 28 apud 7.32.17 PM
Transeuntes in notitia ex JSON file ad spec lima

Nunc ad exitum percurramus experimentum.

anysnap 27 aug 2021 ante 1 41 55 pm 4
test eventus

Ut notum est, examinatio causarum exsecuta est et lata. Hoc exemplum adiuvabit te ad causam testam fundamentalem datae-actiae scribere. Incorporare potes in consilio tuo hoc modo utens. Files JSON sub Fixture folder novas creare potes, valores additos ad notitias probandas, et per quemlibet documentum tabellam accessere potes.

Frequenter Interrogata De quaestionibus

Utrum cupressus subsidium Page Object Model?

Scilicet. Cupressus dat omnem flexibilitatem ad circumagendas paginas et obiecta in promptuario. Facile est efficiendum.

Quod Page Object Model ut ex supra exemplis utar?

Praecipua regula nulla est, ut uni tantum modo paginae Object exemplar adhaereat. Exemplar aliquod uti potes quod supra disputatum est. Libera es ut exemplar customize secundum propositum tuum.

Quid utar adfixa in exemplari paginae Objecti in cupresso?

Fixtura adiuvat notitias sensitivas sicut usoris, tesserae et URLs in singulis fasciculis sicut JSON vel excellere. Hoc efficit ut securitatem applicationis accessum facile in quibusvis tabulariis per inceptum. Ad limam JSON accedere, utimur adfixa uti in nostro spec- file.

Scroll To Top