የሳይፕረስ ትዕዛዞች እና ብጁ ትዕዛዞች፡ 21 ጠቃሚ እውነታዎች

ዝርዝር ሁኔታ

የሳይፕረስ ትዕዛዝ

የሳይፕረስ ትዕዛዞች ምንድን ናቸው?

ሳይፕረስ ከመተግበሪያው UI ጋር የምንገናኝበትን ኤፒአይ እና ዘዴዎችን ይሰጠናል። እነሱ የሳይፕረስ ትዕዛዞች በመባል ይታወቃሉ እና በድር መተግበሪያ መስተጋብር ላይ ያግዛሉ። ያሉት ሁሉም ትእዛዞች አብሮ የተሰሩ ዘዴዎች አሏቸው እና ዘዴዎቹን በፈተና ጉዳዮቻችን ውስጥ ብቻ እንጠራለን። የሳይፕረስ ትዕዛዞች በመተግበሪያው ላይ ስራዎችን ለመስራት ከሚሞክር ተጠቃሚ ጋር ተመሳሳይ እርምጃ ያስመስላሉ።

በሳይፕረስ የቀረቡ የUI መስተጋብር ትዕዛዞች

ከዩአይዩ ጋር የሚገናኙ በሳይፕረስ የተሰጡ የተለያዩ ትዕዛዞች አሉ። የሁሉንም ትዕዛዞች ዝርዝር በዝርዝር እንመለከታለን.

  • .ጠቅ ያድርጉ()
  • .dblክሊክ()
  • .በቀኝ ጠቅታ()
  • ዓይነት()
  • ግልጽ()
  • ቼክ()
  • .አረጋግጥ()
  • ምረጥ()
  • ቀስቅሴ()

የሳይፕረስ ክሊክ ትዕዛዝ

.ጠቅ ያድርጉ() - ይህ ትዕዛዝ ነው ጠቅታ በ DOM ላይ ያለ ማንኛውም አካል።

የሚከተሉት የጠቅታ ትዕዛዝ አገባቦች ናቸው።

.click() 

.click(options) 

.click(position) 

.click(position, options) 

.click(xCoordinate, yCoordinate) 

.click(xCoordinate, yCoordinate, options) 

ከላይ እንደሚታየው, ጠቅታውን እንደ መለኪያዎች ይቀበላል አማራጮች ፣ አቀማመጥ ፣ መጋጠሚያዎች.

አማራጮች

ጠቅ ለማድረግ ሊተላለፉ የሚችሉ አማራጮች ናቸው

አማራጭነባሪመግለጫ
altKeyየሐሰትተለዋጭ ቁልፍን ያብሩ (የአማራጭ ቁልፍ በ Mac) ፣ እንደ optionKey
ctrlKeyየሐሰትየመቆጣጠሪያ ቁልፉን ያብሩ. ተብሎም ይታወቃል: controlKey.
metaKeyየሐሰትሜታ ቁልፉን ያነቃቃል (የዊንዶውስ ቁልፍ በዊንዶውስ ወይም በ Mac ውስጥ የትእዛዝ ቁልፍ)። እንዲሁም፡- commandKeycmdKey.
shiftKeyየሐሰትየመቀየሪያ ቁልፍን ያነቃል።
መዝገብእውነተኛምዝግብ ማስታወሻዎችን በትእዛዝ መስመር ያትማል
ኃይልየሐሰትይህ አማራጭ እርምጃውን ያስገድዳል እና ለተግባራዊነት መጠበቅን ያሰናክላል
ብዙየሐሰትበተከታታይ ብዙ አባሎችን ጠቅ ያድርጉ
ጊዜው አልቋልdefaultCommandTimeoutጊዜውን ከመፍታቱ በፊት የ .click() ጊዜ ይጠብቁ
መጠበቅ ለአኒሜሽንመጠበቅ ለአኒሜሽንትዕዛዙን ከመተግበሩ በፊት ንጥረ ነገሮች እነማ እስኪያጠናቅቁ ድረስ የመጠበቅ አማራጭ
በጠቅታ ውስጥ ያሉ አማራጮች

ቦታ

ወደ .ክሊክ() ሊተላለፉ የሚችሉ የተለያዩ የቦታዎች ዓይነቶች ናቸው።

  • መሃል (ነባሪ)
  • ግራ
  • ቀኝ
  • ጫፍ
  • ከላይ በግራ
  • ከላይ በቀኝ
  • ታች
  • ከታች ግራ
  • ከታች በቀኝ

ለምሳሌ

cy.get('btn') .ክሊክ() // cy.get('btn') የሚለውን በመጫን/ጠቅ ያድርጉ። get('btn') ን ጠቅ ያድርጉ ('bottomright') // ከታች በቀኝ በኩል ያለውን ቁልፍ ጠቅ ያድርጉ cy.get('btn') ን ጠቅ ያድርጉ።(10, 70, {force: true }) የሚለውን ይጫኑ የአቀማመጥ ዋጋ እና ኃይል እውነት

የሳይፕረስ ድርብ ጠቅታ ትዕዛዝ

ሁለቴ ጠቅ በማድረግ ማግኘት ይቻላል dblclick() በሳይፕረስ ውስጥ አገባብ.

የአገባብ

.dblclick()
.dblclick(position)
.dblclick(x, y)
.dblclick(options)
.dblclick(position, options)
.dblclick(x, y, options)

አማራጮች

.dblclick() ተቀባይነት ያላቸውን ሁሉንም አማራጮች ይቀበላል .click(). ከላይ ባለው ክፍል ውስጥ አማራጮችን ማግኘት ይችላሉ.

ቦታ

ውስጥ የተገለጹት ሁሉም ሊሆኑ የሚችሉ ቦታዎች .click() በተጨማሪም ለ dblclick(). የቦታዎች ዝርዝር ከላይ ባለው ክፍል ውስጥ ሊገኝ ይችላል.

ለምሳሌ

cy.get ('አዝራር').dblክሊክ() // በአዝራሩ ላይ ሁለቴ ጠቅ ያድርጉ cy.focused () .dblclick () // በኤለመንቱ ላይ ሁለቴ ጠቅ ያድርጉ ትኩረት cy.contains ('ቤት')።dblclick () // ድርብ ጠቅ ያድርጉ 'Home' cy.get('button') የያዘውን የመጀመሪያ አካል ጠቅ ያድርጉ።dblክሊክ('ከላይ') // በላይኛው ቦታ ላይ ያለውን ቁልፍ ሁለቴ ጠቅ ያድርጉ።dblclick(30፣ 10) // በ 30 እና 10 መጋጠሚያዎች ላይ ሁለቴ ጠቅ ያድርጉ

የሳይፕረስ ቀኝ ጠቅ አድርግ ትዕዛዝ

ይህ የሳይፕረስ ትዕዛዝ የ DOM ኤለመንትን በቀኝ ጠቅ ያደርጋል .rightclick() ትእዛዝ የአሳሹን አውድ ምናሌዎች አይከፍትም።.rightclick() በመተግበሪያው ውስጥ ያሉ የቀኝ ጠቅታ ተዛማጅ ክስተቶችን አያያዝ ለመፈተሽ ጥቅም ላይ ይውላል contextmenu.

የአገባብ

.rightclick()
.rightclick(position)
.rightclick(options)
.rightclick(position, options)
.rightclick(x, y)
.rightclick(x, y, options)

አማራጮች

ከላይ እንዳየነው ሁሉም አማራጮች ተቀባይነት አላቸው .click() ትዕዛዝ በ ጋር ሊዋቀር ይችላል .rightclick() ትእዛዝም እንዲሁ።

ቦታ

ወደ ሊተላለፉ የሚችሉ ሁሉም ሊሆኑ የሚችሉ ቦታዎች .rightclick() ከ ጋር ተመሳሳይ ነው .click() ከላይ የተጠቀሱት.

ለምሳሌ

cy.get('.እንኳን ደህና መጣህ') .ቀኝ ንካ() // .እንኳን ደህና መጣችሁ የሚለውን በቀኝ ጠቅ አድርግ() .ቀኝ ጠቅ አድርግ() // በትኩረት cy.contains('ጥር') ጋር በቀኝ ጠቅ አድርግ() / 'January' cy.get('button') የያዘውን የመጀመሪያውን ኤለመንት በቀኝ ጠቅ ያድርጉ።dblclick('ከላይ ቀኝ') // ከላይ በቀኝ ቦታ ላይ ያለውን አዝራር ሁለቴ ጠቅ ያድርጉ cy.get('button')።dblclick(80) ) // በ20 እና 80 መጋጠሚያዎች ላይ ሁለቴ ጠቅ ያድርጉ

የሳይፕረስ ዓይነት ትዕዛዝ

.type() ትዕዛዙ እሴትን ወደ DOM አባል ያስገባል።

የአገባብ

.type(text)
.type(text, options)

ሙግቶች

.type() ሕብረቁምፊን እንደ ክርክር ይቀበላል። እሴቶች ተላልፈዋል .type() ከዚህ በታች የተሰጡትን ማንኛውንም ልዩ የቁምፊ ቅደም ተከተሎች ሊያካትት ይችላል.

ተከታታይነትማስታወሻዎች
{{}በጥሬው ያስገባል። { ቁልፍ
{backspace}ቁምፊን ከቀኝ ወደ ግራ ጠቋሚውን ይሰርዛል
{del}ቁምፊን ከግራ ወደ ቀኝ ጠቋሚውን ያስወግዳል
{downarrow}ጠቋሚ ወደ ታች ይቀየራል።
{end}ጠቋሚውን ወደ መስመሩ መጨረሻ ይቀይራል።
{enter}አስገባን ይተይቡ
{esc}Escape ቁልፍን ይተይቡ
{home}ጠቋሚውን ወደ መስመሩ መጀመሪያ ይቀይራል።
{insert}የአቀማመጦች ቁምፊ በጠቋሚው በስተቀኝ
{leftarrow}ጠቋሚውን ወደ ግራ ያንቀሳቅሳል
{movetoend}ጠቋሚውን ወደ ሊተየብ የሚችል አካል ይቀይረዋል።
{movetostart}ጠቋሚውን ወደ መተየቢያ አካል መጀመሪያ ይቀይረዋል።
{pagedown}ወደ ታች ይሸብልላል
{pageup}ወደ ላይ ይሸብልላል
{rightarrow}ጠቋሚውን ወደ ቀኝ ይቀየራል።
{selectall}ሀ በመፍጠር ሁሉንም ፅሁፎች ይመርጣል selection range
{uparrow}ጠቋሚ ወደ ላይ ይቀይራል።

አማራጮች

ነባሪ ባህሪን ለመቀየር በእቃዎቹ ውስጥ እንደ አማራጮች ማለፍ እንችላለን .type()

አማራጭነባሪመግለጫ
delay10ከእያንዳንዱ ቁልፍ ከተጫኑ በኋላ በጊዜ ውስጥ የመዘግየት አማራጭ
forcefalseድርጊቱ እንዲፈፀም ያስገድዳል እና ያሰናክላል ተግባራዊነትን በመጠባበቅ ላይ
logtrueበ ውስጥ ያሉትን ምዝግቦች ያሳያል የትእዛዝ መዝገብ
parseSpecialCharSequencestrueለተከበቡ ሕብረቁምፊዎች ልዩ ቁምፊዎችን ተንትን {}, እንደ {esc}. ምርጫውን ማቀናበር ይችላሉ። false ቀጥተኛ ቁምፊዎችን ለማስገባት.
releasetrueይህ አማራጭ በትእዛዞች መካከል መቀየሪያ እንዲነቃ ለማድረግ ያስችላል
scrollBehaviorscrollBehaviorማንኛውንም ትእዛዝ ከመተግበሩ በፊት አንድ አካል ወደ ሚታሸብልበት የመመልከቻ ቦታ
timeoutdefaultCommandTimeoutለመጠበቅ ጊዜ .type() ጊዜው ከማለቁ በፊት እንዲፈታ ትእዛዝ
waitForAnimationswaitForAnimationsኤለመንቶች እስኪጠበቁ ድረስ ለመንገር አኒሜሽን ጨርስ ማንኛውንም ትዕዛዝ ከመተግበሩ በፊት.
የትእዛዝ አይነት አማራጮች

ለምሳሌ

ምሳሌዎችን እንመልከት .type() ትእዛዝ

cy.get('textarea') ይተይቡ('Hey there') // በጽሑፍ አካባቢ እሴት ያስገቡ cy.get('body')።('{shift}') ይተይቡ //የ shift ቁልፍን cy.get ያነቃል። ('አካል')።('{rightarrow}') ይተይቡ //ክስተቱን የቀኝ ቀስት ይተይቡ 

የሳይፕረስ አጽዳ ትዕዛዝ

አጽዳ ትእዛዝ በግቤት አካባቢ ወይም በጽሑፍ መስኩ ውስጥ ያሉትን እሴቶች ያጸዳል።

የአገባብ

የጠራ ትዕዛዝ አገባብ የሚከተለው ነው።

.clear()
.clear(options)

አማራጮች

ወደ ሊተላለፉ የሚችሉትን አማራጮች እንመለከታለን .clear() ትዕዛዝ.

አማራጭነባሪመግለጫ
forcefalseይህ ድርጊቱን ያስገድዳል እና የተግባር አቅም እስኪመጣ መጠበቅን ያሰናክላል
logtrueበትእዛዝ መዝገብ ውስጥ ትዕዛዙን ያሳያል
scrollBehaviorscrollBehaviorየእይታ ቦታ ትዕዛዙን ከመፈጸሙ በፊት አንድ ንጥረ ነገር መዞር ያለበት ቦታ
timeoutdefaultCommandTimeoutይህ አማራጭ የሚጠብቀው ጊዜ ነው .clear() ጊዜው ከማለቁ በፊት ለመፍታት
waitForAnimationswaitForAnimationsይህ ትዕዛዙን ከመፈጸሙ በፊት ንጥረ ነገሮች እነማ እስኪያጠናቅቁ ድረስ ይጠብቃል።
ግልጽ ትዕዛዝ አማራጮች

ለምሳሌ

ግልጽ ትዕዛዝ ለማግኘት ምሳሌዎችን እንመልከት

cy.get('[አይነት = "ጽሑፍ"]')።ግልጽ() // የጽሑፍ ግብዓት አጽዳ cy.get('textarea')።type('እንኳን ደህና መጣህ!')።clear() // textarea cy አጽዳ .ተኮር () .ግልጽ () // ያተኮረ ግብዓት/textarea አጽዳ

የሳይፕረስ ቼክ ትዕዛዝ

የቼክ ትዕዛዙ ይፈትሻል ወይም በቀላል ቃላት የአመልካች ሳጥኖቹን ወይም የሬዲዮ ቁልፎችን ምልክት ያድርጉ። የሚለውን በመጠቀም የአመልካች ሳጥኖቹን ወይም የሬዲዮ አዝራሮችን ምልክት ያንሱ .uncheck() ትዕዛዝ.

የአገባብ

በሳይፕረስ ውስጥ የቼክ ትዕዛዝ አገባብ እንረዳለን።

//Syntax for check command
.check()
.check(value)
.check(options)
.check(values, options)

//Syntax for uncheck command
.uncheck()
.uncheck(value)
.uncheck(options)
.uncheck(values, options)

አማራጮች

ትእዛዞችን ለመፈተሽ/ለማንሳት ሊተላለፉ የሚችሉ አማራጮች ከላይ ከተዘረዘረው ግልጽ ትዕዛዝ ጋር ተመሳሳይ ናቸው።

ለምሳሌ

የቼክ እና የማረጋገጫ ትዕዛዞችን እንዴት መጠቀም እንደምንችል ምሳሌ እንመለከታለን።

cy.get('[አይነት = "አመልካች ሳጥን"]')። አረጋግጥ() // አመልካች ሳጥን አባል cy.get('[አይነት = "ሬዲዮ"]') አረጋግጥ።መጀመሪያ() .ቼክ() // የመጀመሪያውን ሬዲዮ አረጋግጥ element cy.get('[አይነት = "ሬዲዮ"]') .አረጋግጥ('ወንድ') //Male cy.get('[type="checkbox")) ያለውን የሬዲዮ ኤለመንት አረጋግጥ። /አመልካች ሳጥን አባል cy.get('[አይነት = "ሬዲዮ"]') የሚለውን ምልክት ያንሱ።()//የመጀመሪያውን የሬዲዮ ኤለመንት cy.get('[type="checkbox")) የሚለውን ምልክት ያንሱ)።አረጋግጥ('ቁርስ') // የቁርሱን ክፍል ምልክት ያንሱ

ሳይፕረስ ምረጥ ትዕዛዝ

የሳይፕረስ ትዕዛዙን በ ሀ ውስጥ ክፍሎችን እንዲመርጡ ያስችልዎታል መለያ

የአገባብ

የሚከተሉት የትእዛዝ አገባብ ናቸው።

.select(value)
.select(values)
.select(value, options)
.select(values, options)

አማራጮች

የትእዛዝን ነባሪ ባህሪ ለመቀየር አማራጮችን ማለፍ እንችላለን።

አማራጭነባሪመግለጫ
forcefalseይህ አማራጭ ድርጊቱ እንዲፈፀም ያስገድዳል እና ተግባራዊነትን መጠበቅን ያሰናክላል
logtrueበትእዛዝ ሎግ ውስጥ ያሉትን ምዝግብ ማስታወሻዎች ያሳያል እና በነባሪነት እንደ እውነት ተቀናብሯል።
timeoutdefaultCommandTimeoutይህ አማራጭ የሚጠብቀው ጊዜ ነው .select() ጊዜው ከማለቁ በፊት ለመፍታት
ለትእዛዝ ምርጫ አማራጮች

ለምሳሌ

ለመረጡት ትዕዛዝ ምሳሌዎችን እንመልከት

cy.get ('select') .select('ቢራቢሮ') // 'ቢራቢሮ' የሚለውን አማራጭ ይምረጡ cy.get ('select') ን ይምረጡ (0) // ኤለመንቱን በ 0 ኢንዴክስ cy.get ይመርጣል ('ይምረጡ) ') ምረጥ(['parrot'፣ 'peacock']) // የፓሮ እና የፒኮክ ምርጫን ይመርጣል።

የሳይፕረስ ቀስቃሽ ትዕዛዝ

ቀስቅሴ ትዕዛዝ በኤለመንት ላይ ማንኛውንም ክስተት ለመቀስቀስ ይረዳል።

የአገባብ

የመቀስቀሻ ትዕዛዙን ለማግኘት ወደ አገባብ ውስጥ እንመለከታለን

.trigger(eventName)
.trigger(eventName, position)
.trigger(eventName, x, y)
.trigger(eventName, position, options)
.trigger(eventName, options)
.trigger(eventName, x, y, options)

አማራጭ

ቀስቅሴ ትዕዛዝ የተጠቀሱትን ሁሉንም አማራጮች ይቀበላል .clear() ትእዛዝ። በተጨማሪም፣ ከታች የተዘረዘሩትን ማዋቀር የምንችላቸው ጥቂት አማራጮች አሉ።

አማራጭነባሪመግለጫ
bubblestrueክስተቱ አረፋ መሆን እንዳለበት
cancelabletrueክስተቱ መሰረዝ ይቻል እንደሆነ
eventConstructorEventየዝግጅቱን ነገር ለመፍጠር ገንቢ (ለምሳሌ MouseEvent, keyboardEvent)
ለ ቀስቅሴ ትዕዛዝ አማራጭ

ለምሳሌ

በተለያዩ መንገዶች እንጠቀማለን። .trigger() ውስጥ.

cy.get('a')።ቀስቃሽ('mouseover') //በማገናኛ ላይ የመዳፊት ክስተትን cy.get('.target') ቀስቅስቅ('mousedown'፣ {button: 0}) //mousedown ተቀስቅሷል button 0 cy.get('button')።ቀስቃሽ('mouseup'፣ topRight፣ {bubbles: false}) //መዳፊት ከላይ በቀኝ አቀማመጥ ላይ ተቀስቅሷል አረፋን እንደ ውሸት በማቀናበር

የሳይፕረስ ትዕዛዞች አልተመሳሰሉም?

ሁሉም የሳይፕረስ ትዕዛዞች አልተመሳሰሉም። በኋላ ላይ ለመፈጸም ወረፋ ተይዘዋል እና ትእዛዞቹን እስኪጠናቀቅ ድረስ አይጠብቁም. የሳይፕረስ ትእዛዝ በተጠሩበት ጊዜ ምንም ነገር አያደርግም ፣ ይልቁንም ለቀጣይ አፈፃፀም ያስቀምጣል ። የሳይፕረስን ያልተመሳሰል ባህሪ መረዳት ትችላለህ እዚህ

ሳይፕረስ ሊሰቃዩ የሚችሉ ትዕዛዞች

በሳይፕረስ፣ በDOM ውስጥ ካሉ ንጥረ ነገሮች ጋር ለመገናኘት ተከታታይ ትዕዛዞችን መጠቀም እንችላለን። የትዕዛዝ ሰንሰለት በውስጥም እንዴት እንደሚሰራ መረዳት በጣም አስፈላጊ ነው. በአንድ የተወሰነ መስመር ላይ ትዕዛዞችን እያያያዝን ከሆነ፣ሳይፕረስ በትእዛዝ ሰንሰለቱ ላይ የተመሰረተ ቃል ኪዳንን ይይዛል እና የትእዛዙ ሰንሰለት እስኪያበቃ ድረስ ወይም ስህተት እስኪፈጠር ድረስ በርዕሰ ጉዳዩ ላይ ትእዛዝ ይሰጣል።

ሳይፕረስ አንድን ኤለመንትን ጠቅ እንድናደርግ ወይም በኤለመንቶች እንድንጽፍ ያስችለናል። .click() or .type() ንጥረ ነገሮቹን በመጠቀም ያዛል cy.get() or cy.contains(). የሰንሰለት ትዕዛዞችን ቀላል ምሳሌ እንመልከት

cy.get('textarea') ይተይቡ('እንዴት ነሽ?')

ከላይ ባለው ምሳሌ ፣ cy.get() አንድ የሳይፕረስ ትዕዛዝ ነው እና .type() በሰንሰለት እያሰርን ያለንበት ሌላ ትእዛዝ ነው። .type() ላይ ትእዛዝ cy.get() ከ ወደ ተሰጠው ርዕሰ ጉዳይ እንዲተይቡ በመንገር cy.get() ኤለመንት. በተመሳሳይ፣ ከላይ የተወያየንባቸውን ሁሉንም ትዕዛዞች በሰንሰለት ማሰር እንችላለን።

በሳይፕረስ ውስጥ የማረጋገጫ ትዕዛዞችን ማሰር

ሳይፕረስን በመጠቀም ብዙ ትዕዛዞችን በሰንሰለት ከማድረግ ጋር በሚመሳሰል መልኩ፣ ማረጋገጫዎችን ከትእዛዞች ጋር ሰንሰለት ማድረግ እንችላለን። ማረጋገጫዎች እርስዎ እንዲገልጹ የሚያስችሉዎት ትዕዛዞች ናቸው። ይጠበቃል የመተግበሪያው ሁኔታ ወይም ባህሪ. ሳይፕረስ ንጥረ ነገሮቹ ወደሚጠበቀው ሁኔታ እስኪደርሱ ድረስ ይጠብቃል, እና ማረጋገጫዎቹ ካላለፉ ፈተናው አይሳካም. አንድን አካል በማረጋገጥ ላይ የሰንሰለት ትዕዛዞችን እንዴት መጠቀም እንደምንችል እንመለከታለን።

cy.get('አዝራር')) አለበት('ቢ.ተሰናከለ') //አዝራሩ መሰናከል እንዳለበት መጠበቅ cy.get('form') .should ('have.class'፣ 'form-vertical') / // ቅጹ እንደ 'form-vertical' cy.get('input') ክፍል ይኖረው እንደሆነ ጠብቅ ('not.have.value'፣ 'name') '

ከላይ እንደተዘረዘረው, እኛ እየተጠቀምን ነው cy.get() ማዘዝ እና በሰንሰለት በ .should() የማረጋገጫ ትእዛዝ በውጤቱ ላይ ተመስርቶ ባህሪውን ለመጠበቅ. በዚህ መንገድ ሰንሰለት መጠቀም እንችላለን የማረጋገጫ ትዕዛዞች በሳይፕረስ.

የሳይፕረስ ብጁ ትዕዛዞች

በእኛ መስፈርቶች ላይ በመመስረት ትዕዛዞችን ለመፍጠር ሳይፕረስ ኤፒአይዎችን ይሰጠናል። የሳይፕረስ ብጁ ትዕዛዝ ከቅድመ-ነባር ትእዛዞች ጋር ተመሳሳይ ነው፣ ካልሆነ በስተቀር በተጠቃሚ-የተገለጸ. በብጁ ትዕዛዞች፣ በትእዛዞቻችን ዙሪያ መጫወት እና በአጠቃቀማችን ጉዳይ ላይ ተመስርተን በሰንሰለት ማድረግ እንችላለን። በፈተናዎች ውስጥ ደጋግመው መጠቀም ከፈለጉ የሳይፕረስ ብጁ ትዕዛዞች በእኛ የስራ ሂደት ውስጥ ጠቃሚ ናቸው።

በሳይፕረስ ውስጥ አዲስ ብጁ ትዕዛዝ ለመፍጠር አገባብ እንይ።

Cypress.Commands.add(name, callbackFn)
Cypress.Commands.add(name, options, callbackFn)
Cypress.Commands.overwrite(name, callbackFn)

ክርክሮቹ በሚኖሩበት ቦታ እንደሚከተለው ነው

ስም - እኛ ለመጨመር ወይም ለመፃፍ የምንፈልገው በሕብረቁምፊ ውስጥ ያለው የትዕዛዝ ስም

መልሶ ጥሪFn - ይህ ተግባር ለትእዛዙ የተላለፈ ክርክር ይወስዳል

አማራጮች - የትዕዛዙን ባህሪ ለመወሰን ማንኛውንም አማራጮችን ይለፉ

ማስታወሻ : አማራጮች የሚደገፉት ለማከል ትዕዛዞች ብቻ እና ትእዛዞቹን ለመድገም አይደግፉ

አማራጭይቀበላልነባሪመግለጫ
prevSubjectBooleanString or Arrayfalseቀደም ሲል የተሰጠውን ርዕሰ ጉዳይ እንዴት እንደሚይዝ ይገልጻል።

ያሉት አማራጮች prevSubject የሚቀበሉት የሚከተሉት ናቸው።

  • false - የቀደሙትን ጉዳዮች ችላ ይበሉ (የወላጅ ትእዛዝ)
  • true - የቀደሙትን ጉዳዮች ይቀበሉ (የልጆች ትእዛዝ)
  • optional - አዲስ ሰንሰለት ለመጀመር ከፈለጉ ወይም ያለውን ሰንሰለት ይጠቀሙ (ድርብ ትዕዛዝ)

በሳይፕረስ ውስጥ የወላጅ ብጁ ትዕዛዝ

በሳይፕረስ ውስጥ የወላጅ ብጁ ትዕዛዝ እንዴት እንደሚታከል እናያለን። ያለፈውን ትእዛዝ በሰንሰለት ብታሰርም የወላጅ ትእዛዝ ሁል ጊዜ አዲስ የትዕዛዝ ሰንሰለት ይጀምራል። ቀደም ሲል በሰንሰለት የታሰረው ትዕዛዝ ችላ ይባላል እና አዲስ ትእዛዝ ሁል ጊዜ በሰንሰለት ይታሰራል። አንዳንድ የወላጅ ትዕዛዞች ናቸው። cy.visit(), cy.get(), cy.request(),cy.exec(), cy.route()

ለምሳሌ

በሳይፕረስ ውስጥ የወላጅ ብጁ ትዕዛዝ እንዴት እንደሚፃፍ ምሳሌ እንመለከታለን

Cypress.Commands.add('clickLink', (label)=> {cy.get('a').contains(label).ጠቅ ያድርጉ()}) //"አሁን ይግዙ" ማገናኛን ጠቅ በማድረግ cy.clickLink('ግዛ ይግዙ) አሁን')

ከላይ ባለው ምሳሌ 'ማገናኛን ጠቅ ያድርጉ"የእኛ ብጁ ትዕዛዝ ስም ነው። የሚለውን ይፈልጋል ምልክት. በመስመር 2 ትዕዛዙ ይመጣልa'፣ እና መለያ የያዘውን አገናኝ ይፈልጉ እና ኤለመንቱን ጠቅ ያድርጉ። cy.clickLink() በሙከራ ፋይል ውስጥ ያለውን ተግባር ያከናውናል እና "" ን ጠቅ ያደርጋል.አሁን ግዛ"አገናኝ.

የልጅ ብጁ ትዕዛዝ በሳይፕረስ

በሳይፕረስ ውስጥ ያሉ የልጅ ብጁ ትዕዛዞች ከወላጅ ትእዛዝ ወይም ሌላ የሕፃን ትእዛዝ በሰንሰለት ታስረዋል። ከቀዳሚው ትእዛዝ የመጣው ርዕሰ ጉዳይ ወደ መልሶ ጥሪ ተግባር ይሰጣል።

እንደ ልጅ ትእዛዝ በሰንሰለት ሊታሰሩ ከሚችሉት የሳይፕረስ ትዕዛዞች ጥቂቶቹ ናቸው። .click(), .trigger(), .should(), .find(), .as()

ለምሳሌ

የልጅ ብጁ ትዕዛዝን እንዴት ሰንሰለት ማድረግ እንደሚቻል አንድ ምሳሌ እንመለከታለን

Cypress.Commands.add ('ForceClick', {prevsubject: 'element'}, (ርዕስ, አማራጮች) => {// ያለውን ርዕሰ ጉዳይ ጠቅልለው አንድ ነገር ያድርጉበት cy.wrap(ርዕሰ ጉዳይ)። ጠቅ ያድርጉ({force:true) }) }) // በግዳጅ ላይ መድረስ በሙከራ ፋይል ውስጥ cy.get("[data-test='panel-VALUES']").forceClick ();

ከዚህ በላይ ባለው ምሳሌ፣ ብጁ ትዕዛዛችንን እንደ ' ብለን እንሰይማለን።በግድ ጠቅ ያድርጉ. የቅድመ ርዕሰ ጉዳይ ነጋሪ እሴትን ወደ ኤለመንት እናስተላልፋለን እና ያለውን ርዕሰ ጉዳይ እየጠቀለልን ነው። ጋር cy.wrap(), ርዕሰ ጉዳዩን ጠቅ ለማድረግ እንገደዳለን. ከዚያ በሙከራ ፋይል ውስጥ፣ ብጁ ትዕዛዝ እየደረስን ነው፣ 'በግድ ጠቅ ያድርጉ' ላይ ሀ cy.get() ትዕዛዝ.

በሳይፕረስ ውስጥ ድርብ ብጁ ትዕዛዞች

ድርብ ብጁ ትዕዛዞች በወላጅ እና በልጅ ትእዛዝ መካከል የተደባለቁ ናቸው። አዲስ የትዕዛዝ ሰንሰለት መጀመር ወይም ያለውን ትእዛዝ ሰንሰለት ማጥፋት ትችላለህ። ትዕዛዛችን ካለው ርእሰ ጉዳይ ጋር ወይም ያለሱ በተለያየ መንገድ እንዲሰራ ከፈለግን ድርብ ትዕዛዞች አጋዥ ናቸው።

ለድርብ ትዕዛዞች ጥቅም ላይ ሊውሉ ከሚችሉት አንዳንድ ትዕዛዞች መካከል ጥቂቶቹ ናቸው። cy.contains(), cy.screenshot(), cy.scrollTo(), cy.wait()

ለምሳሌ

ድርብ ብጁ ትዕዛዞችን እንዴት መጠቀም እንደሚቻል ምሳሌ እንመልከት

Cypress.Commands.add ('getButton', {prevSubject: 'አማራጭ' }, (ርዕሰ ጉዳይ) => { ከሆነ (ርዕሰ ጉዳይ) {cy.get (subject).get ('btn') .its ('አዝራር'); } ሌላ {cy.get('btn') .its('አዝራር');} })

በአንዳንድ አጋጣሚዎች ሁሉንም የኤለመንት አዝራሮችን የሚያገኝ GetButtonን በመጠቀም የጽሑፉን ቁልፍ ማግኘት እንፈልጋለን። አሁን GetButtonን ከወላጅ ኤለመንቱ ጋር ወይም የልጁን ንጥረ ነገር ሰንሰለት ለማስያዝ የወላጅ አካላትን መጥራት እንችላለን።

ጀምሮ prevSubject እንደ አማራጭ ነው ፣ ትምህርቱን እንደ ክርክር ማለፍ ወይም ከዚህ በታች ባለው የሙከራ ፋይል ውስጥ ያለ ርዕሰ-ጉዳይ ትዕዛዙን መጥራት እንችላለን

cy.getButton() // ያለ ርእሱ cy.get('#loginBtn')።getButton() // ከርዕሰ ጉዳዩ ጋር

ነባር የሳይፕረስ ትዕዛዞችን እንደገና መፃፍ

ቀድሞውንም የነበሩትን የሳይፕረስ ትእዛዞችን ገልብጠን ባህሪውን ማስተካከል እንችላለን ይህም በመጨረሻው ላይ ዋናውን ትዕዛዝ ለመጠቀም የሚሞክር ሌላ ትእዛዝ ላለመፍጠር ነው።

ሊገለበጡ ከሚችሉት የመጀመሪያዎቹ የሳይፕረስ ትእዛዝ ጥቂቶቹ ናቸው። cy.visit(), cy.type(), cy.screenshot(), cy.contains()

ለምሳሌ

እስቲ አንድ እንመልከት ያለውን ሳይፕረስ እንዴት መፃፍ እንደምንችል ምሳሌ ትዕዛዝ.

ሳይፕሪስ text text = filter filter = undefined } options.matchCase = የውሸት ተመላሽ originalFn(ርዕሰ ጉዳይ፣ ማጣሪያ፣ ጽሑፍ፣ አማራጮች)} )

ከላይ እንዳየነው, እየተጠቀምን ነው ሳይፕረስ.ትእዛዞች.ይፃፉ ያለውን የሳይፕረስ ትዕዛዝ ለመቀየር። ብጁ ትዕዛዛችንን ብለን እንሰይማለን። contains እና የማጣሪያ ግቤት ያለፈ መሆኑን ለመወሰን ክርክሮችን እናስተላልፋለን.

የሳይፕረስ ማስመጣት ትዕዛዞች

በዚህ ክፍል የሳይፕረስ ትዕዛዞችን እንዴት ማስገባት እንዳለብን እንረዳለን።

በ ውስጥ የሳይፕረስ ብጁ ትዕዛዞችን መፍጠር አለብን ሳይፕረስ / ድጋፍ / ትዕዛዞች.js ፋይል. በ Command.js ፋይል ውስጥ ብጁ ትዕዛዞችን እንጨምራለን እና እሱን ለመጠቀም የሙከራ መያዣ ፋይላችን ውስጥ እናስገባለን።

Command.js ፋይል

የሳይፕረስ ብጁ ትዕዛዞች ከምሳሌ ጋር

ብጁ ትዕዛዝ እንዴት መፍጠር እንደምንችል እንረዳለን እና በእኛ spec ፋይል ውስጥ በቅጽበት ምሳሌ እንጠቀማለን።

ከላይ እንዳየነው አዲስ ብጁ ትዕዛዞችን በ ውስጥ ማከል አለብን ያዛል.js ፋይል. በዚያ ፋይል ውስጥ፣ ለመግቢያ ተግባር ብጁ ትዕዛዝ እንጨምር

ሳይፕሬስ = ኢሜል]') አይነት (የተጠቃሚ ስም)፤ cy.get('[መታወቂያ=የይለፍ ቃል]')።clear(); cy.get('[መታወቂያ=የይለፍ ቃል]')) አይነት(የይለፍ ቃል)፤ cy.get( '[አይነት=ማስረከብ]') ን ጠቅ ያድርጉ ();});
በ Command.js ፋይል ውስጥ ብጁ ትዕዛዞች

ከላይ ባለው ኮድ ውስጥ የኛን ብጁ ትዕዛዛችንን እንደ ስም እየሰየምን ነው። የመግቢያ ገጽ. በብጁ ትዕዛዝ ውስጥ የተጠቃሚ ስም መስኩን የማጽዳት እና በጽሑፍ መስክ ውስጥ እሴትን የማስገባት ደረጃዎችን ጨምረናል። በተመሳሳይ, መስኩን እናጸዳለን እና በይለፍ ቃል መስኩ ውስጥ የይለፍ ቃሉን እንጨምራለን. በኋላ፣ የማስረከቢያ አዝራሩን ጠቅ እናደርጋለን። ይህ ሁለት ግቤቶችን የሚቀበል ቀላል ብጁ ትዕዛዝ ነው የተጠቃሚ ስም እና የይለፍ ቃል። በእኛ ልዩ ፋይል ውስጥ የተጠቃሚ ስም እና የይለፍ ቃል እሴት እናስተላልፋለን።

አሁን አንድ የተወሰነ ፋይል ስም እንፍጠር customCommand.spec.js ውህደት አቃፊ ስር. የእኛ ልዩ ፋይል የሚከተለውን ኮድ ይይዛል

ይግለጹ ("ብጁ ትዕዛዞች ምሳሌ", () => {እሱ ("ብጁ ትዕዛዞችን በመጠቀም መግባት አለበት", () => {cy.visit("https://admin-demo.nopcommerce.com/"); cy .login ("admin@yourstore.com", "አስተዳዳሪ"); cy.url () አለበት ('be.equal', 'https://admin-demo.nopcommerce.com/admin/')}); });
ብጁ ትዕዛዙን የሚደርስ ልዩ ፋይል

ከላይ እንዳየነው፣የእኛን ብጁ ትዕዛዝ እንደ cy.login() የተጠቃሚ ስም እና የይለፍ ቃል እሴቶችን የምናልፍበት።

ሳይፕረስ ብጁ ትዕዛዞች IntelliSense

ፈተናዎችን በምንጽፍበት ጊዜ IntelliSense በ IDE ወይም በኮድ አርታኢ ውስጥ የማሰብ ችሎታ ያለው ኮድ ጥቆማዎችን ያቀርባል። የትእዛዝ ትርጉሙን የሚያሳይ ብቅ ባይ በማሳየት ይረዳል, ወደ የሰነድ ገፅ አገናኝ እና የኮድ ምሳሌዎች. እንደ ቪዥዋል ስቱዲዮ ኮድ ወይም IntellJ ያሉ ማንኛውንም ዘመናዊ ኮድ አርታዒ እየተጠቀምን ከሆነ ኢንቴልሊሴንስ በጣም ጠቃሚ ይሆናል።

IntelliSense አገባቡን ለመረዳት እና ለማሳየት Typescript ይጠቀማል። ብጁ ትዕዛዞችን ከጻፍን እና ለየብጁ ትዕዛዞች የTyScript ፍቺዎችን ከሰጠን ፣ ምንም እንኳን ፕሮጀክታችን ጃቫ ስክሪፕትን ብቻ ቢጠቀምም ፣ IntelliSenseን ለማሳየት የሶስት ጊዜ ስክሪፕቶችን መጠቀም እንችላለን።

IntelliSense ን ለማዋቀር በውስጡ ያለውን ኮድ መግለጽ አለብን ሳይፕረስ/ድጋፍ/index.d.ts ፋይል.

// ለሳይፕረስ ነገር “cy” ትርጉሞችን ይተይቡ /// የስም ቦታ ማወጅ ሳይፕረስ {በይነገጽ ሊሰቀል የሚችል {/** * በመረጃዎች ይግቡ * @ ምሳሌ * cy.login (የተጠቃሚ ስም ፣ የይለፍ ቃል) */ መግቢያ (የተጠቃሚ ስም: ሕብረቁምፊ ፣ የይለፍ ቃል: ሕብረቁምፊ): ሊታሰር የሚችል }

አሁን፣ በ ውስጥ አንዳንድ የTypescript ፍቺዎች እንዳሉ የእኛ ልዩ ፋይሎቻችንን ማሳወቅ አለብን index.d.ts ፋይል. ስለዚህ፣ በእኛ spec ፋይል መጀመሪያ ላይ፣ IntelliSense ጥቆማዎችን እንዲሰጠን ከዚህ በታች ያለውን ኮድ ያክሉ።

// እንደ "መግባት" ላሉ ብጁ ትዕዛዞች ትርጓሜዎችን ይተይቡ // ወደ "ሳይፕረስ/ድጋፍ/index.d.ts" // ይፈታል
በIntelliSense የቀረበ አስተያየት

ከላይ እንዳየነው IntelliSense በእኛ የትእዛዝ.js ፋይል ውስጥ ያቀረብነውን ክርክር ያቀርብልናል እና በራስ-ሰር ለመሙላት ያግዘናል።

ወደ ላይ ሸብልል