የአሻንጉሊት አውቶሜሽን ሙከራ፡ አጋዥ ስልጠና 6

Puppeteer በመስቀለኛ js ላይብረሪ ላይ የተመሰረተ ማዕቀፍ ሲሆን እንደ ክፍት ምንጭ ይገኛል። ለድር መጥረጊያ መሳሪያዎች ጥቅም ላይ ሊውል ይችላል. ለሙከራ አውቶማቲክ መሳሪያዎችም ጥቅም ላይ ይውላል። በአሁኑ ጊዜ፣ በአውቶሜትድ የሶፍትዌር መሞከሪያ ቦታ ላይ የፑፔተር አጠቃቀም በፍጥነት እየጨመረ ነው። ለመረዳት የትእዛዝ መስመር፣ ጃቫስክሪፕት እና HTML DOM መዋቅር መሰረታዊ እውቀት ያስፈልጋል የአሻንጉሊት ትምህርት. ጠቅላላው አጋዥ ስልጠና ከዚህ በታች ባሉት መጣጥፎች ተከፍሏል። 

የአሻንጉሊት ትምህርት

Tosca አጋዥ ትምህርት #1፡ የአሻንጉሊቶች አጠቃላይ እይታ

ቶስካ ማጠናከሪያ ትምህርት #2: የአሻንጉሊት አካባቢ ተለዋዋጮች

ቶስካ ማጠናከሪያ ትምህርት #3: የአሻንጉሊት ድር መቧጨር እና የአሻንጉሊት ሙከራ አውቶሜሽን አጠቃላይ እይታ

ቶስካ ማጠናከሪያ ትምህርት #4: Puppeteer ጫን

ቶስካ ማጠናከሪያ ትምህርት #5: ናሙና የአሻንጉሊት ፕሮጀክት

Tosca አጋዥ #6፡ የአሻንጉሊት አውቶሜሽን ሙከራ

በዚህ "የአሻንጉሊት አውቶሜሽን ሙከራ" አጋዥ ስልጠና ውስጥ, ከመጀመሪያው ጀምሮ ስለ ፑፔተር አውቶሜሽን ዝርዝር ደረጃዎችን እናብራራለን. የፑፔተር አውቶሜሽን ሙከራን ከባዶ ለመረዳት ከታች ባህሪያት ይብራራሉ -

· አሻንጉሊት ይጫኑ

· የድር መተግበሪያን ያስጀምሩ

· የነገሮችን ባህሪያት ከChrome አሳሽ ይለዩ

· የማስረከቢያ ደረጃዎች - ጽሑፍ ያስገቡ ፣ ክስተቱን ጠቅ ያድርጉ ፣ ማረጋገጫ

· ቅጽበታዊ ገጽ እይታ

· ለ Puppeteer Automation ስክሪፕቶችን ያስፈጽሙ

የአሻንጉሊት አውቶማቲክ

የሶፍትዌር ምርቶችን ጥራት ለማረጋገጥ መሞከር ያስፈልጋል። በሶፍትዌር ልማት ሂደቶች ውስጥ የተገለጹ በርካታ የሙከራ ደረጃዎች አሉ። የሶፍትዌርን ተግባራዊነት ለመፈተሽ በእጅ ወይም በራስ-ሰር ሂደት ሊከናወን ይችላል። አውቶማቲክ የሶፍትዌር ሙከራ ዋና ዓላማዎች-

  • ፈጣን የሙከራ አፈፃፀም ዑደት።
  • የሰዎች ስህተቶችን እድሎች ያስወግዱ.
  • የሙከራ አፈፃፀም ጊዜን ይቀንሱ።
  • የመልቀቂያ ዑደት ጊዜን ይቀንሱ.
  • ከጥራት ጋር ሳይጣሱ ተጨማሪ ተግባራትን ይሸፍኑ።
  • ብዙ አፈፃፀም በትይዩ ሊከናወን ይችላል።

 Puppeteer የChrome ድር አሳሹን በChrome DevTools ፕሮቶኮል ለመቆጣጠር ባለከፍተኛ ደረጃ የመተግበሪያ በይነገጽ(ኤፒአይ) የሚሰጥ በጃቫስክሪፕት ላይ የተመሰረተ መስቀለኛ መንገድ ላይብረሪ ነው። በ Chrome አሳሽ ውስጥ የሚከናወኑ አብዛኛዎቹ የእጅ ሥራዎች ፑፔተርን በመጠቀም በራስ ሰር ሊሠሩ ይችላሉ። ስለዚህ፣ አሻንጉሊቱ ፈጣን እና ቀላል በሆነ መንገድ በድር መተግበሪያዎች ላይ ለአሃድ ሙከራ ጥሩ ምርጫ ነው። 

የአሻንጉሊት አውቶሜሽን ሙከራ አቀራረብ፡-

ከአሻንጉሊት አውቶሜሽን ሙከራ ጋር የተካተቱት ደረጃዎች ከዚህ በታች ተብራርተዋል- 

ደረጃ 1# የተግባር ሙከራ ሁኔታን መለየት፡-

ከዚህ በታች ላለው ሁኔታ የአሻንጉሊት አውቶማቲክን ለማከናወን የደረጃ በደረጃ አቀራረብን እናሳያለን- 

· የድር አሳሹን ያስጀምሩ።

· የአማዞን ድር መተግበሪያን ጥራ።

  • "የሙከራ መጽሐፍ" የሚለውን መጽሐፍ ይፈልጉ.
  • ከውጤቱ ውስጥ መጽሐፉን ወደ ጋሪው ያክሉት.
  • ጋሪውን ይክፈቱ እና መጽሐፉ በጋሪው ውስጥ የሚገኝ መሆኑን ያረጋግጡ።
  • ስክሪን አንሳ እና አሳሹን ዝጋ።

ደረጃ 2 # አሻንጉሊት ይጫኑ እና የሙከራ መያዣ ይፍጠሩ

ባዶ የጃቫስክሪፕት ፋይል እንደ “sample_script.js” በአንድ የተወሰነ አቃፊ ውስጥ ይፍጠሩ። እዚህ, የስር አቃፊውን እንደ SampleProject እንቆጥራለን. Puppeteer ን ለመጫን, ትዕዛዙን እንጠቀማለን - "npm install pupeteer". በአውታረ መረቡ ፍጥነት ላይ በመመስረት የመጫን ሂደቱ የተወሰነ ጊዜ ይወስዳል. ወደ 350ሜባ የሚጠጋ ውሂብ ያወርዳል። ከተጫነ በኋላ፣ የተለያዩ የአሻንጉሊት ክፍሎችን እና pack-lock.json ፋይልን የያዘው node_modules ማህደር ወደ ናሙናው Puppeteer project root ፎልደር ይፈጠራል።

ደረጃ 3# የሙከራው ነገር የመለየት ባህሪያትን ያንሱ፡-

የChrome ድር አሳሽ የገንቢዎች መሣሪያን በመጠቀም የመታወቂያ ባህሪያቱን ማንሳት እንችላለን። እንደ ፣ መታወቂያ ፣ ስም ፣ ኤክስፓት ፣ ወዘተ ያሉ የተለያዩ ንብረቶችን በመተንተን ማንኛውንም ስራዎች ለማከናወን በስክሪፕት ውስጥ ጥቅም ላይ ሊውል የሚችለውን ትክክለኛውን እንመርጣለን ። በዚህ "የአሻንጉሊት አውቶሜሽን ሙከራ" አጋዥ ስልጠና በስክሪፕቱ ውስጥ XPath ን እንጠቀማለን. XPATHን ወይም ሌሎች ንብረቶችን ለማግኘት የሚከተሉትን ደረጃዎች መከተል አለብዎት።

1. በ"Menu -> ተጨማሪ መሳሪያዎች" ስር የሚገኘውን የገንቢ መሳሪያዎችን ክፈት እና ወደ Elements ትር ይሂዱ።

2. የፈላጊ መሳሪያውን በመጠቀም (በElements ትር በግራኛው ጥግ ላይ የሚገኘውን የቀስት አዶ ላይ ጠቅ ያድርጉ) የሙከራውን ነገር ከመተግበሪያው ላይ ያደምቁ። እዚህ, የፍለጋ ሳጥኑን እንመረምራለን.

የአሻንጉሊት አውቶሜሽን ሙከራ - የChrome ገንቢ መሣሪያን ይክፈቱ
የአሻንጉሊት አውቶሜሽን ሙከራ - የ Chrome ገንቢ መሣሪያን ይክፈቱ

3. የፍላጎት ባህሪያትን ለመለየት የደመቀውን ምንጭ ኮድ ተንትን። የፈተናውን ነገር የXPATH ንብረት ለማግኘት በደመቀው ክፍል ላይ በቀኝ ጠቅ ያድርጉ እና "Copy-> ኮፒ ኤክስፓት" ን ጠቅ በማድረግ በቅንጥብ ሰሌዳው ውስጥ ያለውን የXPATH ንብረት ለመቅዳት።

የአሻንጉሊት አውቶሜሽን ሙከራ - ኤክስፓትን ይቅዱ
የአሻንጉሊት አውቶሜሽን ሙከራ - ኤክስፓትን ይቅዱ

4. አሁን Xpath የሚለውን በፈላጊው የጽሑፍ ሳጥን ውስጥ ይለጥፉ እና ኤክስፓት ነገሩን በተለየ ሁኔታ እየለየ መሆኑን ለማረጋገጥ አስገባን ይጫኑ።

የአሻንጉሊት አውቶሜሽን ሙከራ - XPathን ያረጋግጡ
የአሻንጉሊት አውቶሜሽን ሙከራ - XPath ን ያረጋግጡ

5. በተመሳሳይ, ለሌላ የሙከራ ነገርም የመለያ ባህሪያትን መያዝ አለብን.

ደረጃ 4# የአሻንጉሊት አውቶሜሽን ልማት ደረጃዎች፡-

የፈተናውን ጉዳይ ለማጠናቀቅ በድረ-ገጾች ላይ የተወሰኑ ስራዎችን ማከናወን አለብን. ለእያንዳንዱ ቀዶ ጥገና የተለያዩ ዘዴዎች አሉ. በእኛ ሁኔታ ለ"የአሻንጉሊት አውቶሜሽን ሙከራ" ጥቅም ላይ የዋሉት ዘዴዎች እዚህ ተብራርተዋል።

ማመልከቻ አስጀምር - አሻንጉሊቱን ካካተትን በኋላ, የአሻንጉሊት-የማስጀመሪያ ዘዴን በመጠቀም አሳሹን ማስጀመር አለብን. ጭንቅላት የሌለው ወይም ጭንቅላት ያለው አሳሽ ለመግለጽ የነገር ማጣቀሻ ወደዚህ ዘዴ ሊተላለፍ ይችላል። ከዚያ URLን ለማሰስ የሚያስፈልገውን የድር አሳሽ ምሳሌ መፍጠር አለብን። እዚህ፣ የማመሳሰል ተግባር የድር ማመሳሰልን ለመቆጣጠር የመጠባበቅ ቁልፍ ቃልን ለመጠቀም ጥቅም ላይ ይውላል።

// የአሻንጉሊት ፓኬጅ const puppeteer = ተፈላጊ ('አሻንጉሊት') ያካትቱ; (async () => {//ራስ-አልባ አሳሹን ማስጀመር const browser = ጠብቅ puppeteer.launch({ headless: true })፤ //የአሳሹን የኮንስት ገጽ ምሳሌ ፍጠር = አሳሹን ይጠብቁ.newPage(); // ወደ url መጠበቅ ገጽ.goto('https://www.amazon.in/')፤ })()

አጠቃላይ ሙከራው ጭንቅላት በሌለው አሳሽ ውስጥ ይከናወናል። ዋናውን አሳሽ ለመክፈት ከፈለግን እቃውን እንደ ማስጀመሪያ ዘዴ ማስተላለፍ አለብን "{ጭንቅላት የሌለው፡ ውሸት}"

መኖሩን ያረጋግጡ - ዘዴውን መጠቀም አለብን ገጽ.waitForXpath የ Xpath መኖሩን የሚያረጋግጥ እና የፍተሻውን ነገር ማመሳከሪያውን ይመልሳል. የመመለሻ ማመሳከሪያውን በመሞከር, በፈተናው ውስጥ የማረጋገጫ ነጥብ ማከል እንችላለን.

	searchBox = ይጠብቅ page.waitForXPath("//*[@id='twotabsearchtextbox']"፣{ የሚታይ፡ እውነት }); ከሆነ (searchBox === ባዶ) // የፈተናውን ነገር ማረጋገጥ {console.log('የአማዞን ማያ ገጽ አልታየም'); }

ውሂብ አስገባ - በመጠቀም ዓይነት የነገሩን ማመሳከሪያ ዘዴ፣ ጽሑፉን ማስገባት እንችላለን።

searchBox.type ("የሙከራ መጽሐፍ") ይጠብቁ;

ኤለመንት ላይ ጠቅ ያድርጉ  - በተመሳሳይ መልኩ, በመጠቀም ጠቅታ የማንኛውንም ነገር ማመሳከሪያ ዘዴ, የጠቅታ ስራዎችን ማከናወን እንችላለን.

btnSearch = ቆይ ገጽ.waitForXPath("//*/input[@id='nav-search-submit-button']",{የሚታይ:እውነት}); btnSearch.click();

በኮንሶል ውስጥ መልእክት ያትሙ  - ዘዴውን በመጠቀም console.logበኮንሶል ውስጥ ማንኛውንም መልእክት እንደ ውፅዓት ማተም እንችላለን።

console.log ('Console lag ተፈጥሯል');

ወደ አዲሱ ትር ይመልከቱ - ዘዴዎችን በመጠቀም ገጽ.ዒላማ እና አሳሽ.waitforTarget፣ ስለ አዲስ ትር ማጣቀሻውን ወደ ተለዋዋጭ ማረጋገጥ እና ማከማቸት እንችላለን።

	const pageTarget = page.target(); const newTarget = አሳሽ ይጠብቁ።waitForTarget(ዒላማ => target.opener() === page Target); // አዲሱን ገጽ ነገር ያግኙ፡ const page2 = ጠብቅ newTarget.page();

ቅጽበታዊ ገጽ እይታን ያንሱ - ዘዴውን በመጠቀም ገጽ. ቅጽበታዊ ገጽ እይታ, የአንድ የተወሰነ ገጽ ቅጽበታዊ ገጽ እይታ ተወስዷል እና እንደ ክርክር በቀረበው የፋይል ስም ያስቀምጡ.

ይጠብቁ page.screenshot ({ዱካ: 'screenshot1.png'});

ገጽ እና አሳሽ ዝጋ - ዘዴውን በመጠቀም ገጠመሁለቱንም ድረ-ገጽ እና አሳሹን መዝጋት እንችላለን።

	ገጽ ይጠብቁ. ዝጋ (); አሳሽ ይጠብቁ. ዝጋ ();

ቆይ ጊዜ - በአንዳንድ ሁኔታዎች, ማንኛውንም ጥገኛ ተግባር ገጽ መጫን ወይም ማጠናቀቅን ለመጠበቅ አስፈላጊ መስፈርት አለ; አፈፃፀሙን አስቀድሞ ለተወሰነ ጊዜ ማቆም አለብን። ይህንን ለማድረግ, ልንጠቀምበት እንችላለን ገጹ.waitForTimeout በክርክሩ ውስጥ ካለፈው እሴት (በሚሊ-ሰከንድ) ላይ በመመስረት አፈፃፀሙን ለአፍታ የሚያቆም ዘዴ።

ይጠብቁ ገጽ.waitForTimeout (2000);

አሁን የእኛን ተግባራዊ ሁኔታ በራስ ሰር ለመስራት ስለ መሰረታዊ ቴክኒካዊ ደረጃዎች ተምረናል። በእውቀቱ ላይ በመመስረት፣ ከዚህ በታች ባለው የፑፔተር አውቶሜሽን ፈተና ውስጥ ማለፍ እንችላለን። በጣም በተደጋጋሚ ጥቅም ላይ የዋሉ ክፍሎች እና ዘዴዎች ዝርዝር መግለጫ በሚቀጥሉት ጽሁፎች ውስጥ ይብራራል.

/** * @ ስም የአማዞን ፍለጋ */ const puppeteer = ፍላጎት ('አሻንጉሊት'); const reportPath = 'C: \\ LambdaGeeks \\ puppteer_proj_sample \\ ውፅዓት \\'; const ቅጽበታዊ ገጽ እይታ = 'screen1.png'; // ፋይሉን ወደ .docx ፋይል ለመላክ ይጠቅማል {(async () => {const browser = wait puppeteer.launch({ headless: false}); const pageNew = wait browser.newPage() wait pageNew.setViewport() {ወርድ፡ 1280፣ ቁመት፡ 800})፤ ገጽ ይጠብቁNew.goto('https://www.amazon.in/')፤ //የፍለጋ መስፈርት አስገባ searchBox = የመጠባበቅ ገጽ.waitForXPath("//*[@id) ='twotabsearchtextbox']"፣{የሚታይ፡ እውነት}፤ ከሆነ (searchBox === null) {console.log('Amazon screen is not display')፤} ሌላ{ searchBox.type("የሙከራ መፅሐፍ") ከሆነ console.log('የፍለጋ መስፈርቱ ገብቷል')፤} //በፍለጋ ቁልፍ ላይ ተጫኑ btnSearch = ጠብቅ ገጽNew.waitForXPath("//*/input[@id='nav-search-submit-button']", {የሚታይ፡ እውነት})፤ ከሆነ (btnSearch === null) {console.log('የፍለጋ ቁልፉ አይታይም')፤ } ሌላ{btnSearch.click() ጠብቅ፤ console.log('የፍለጋ ቁልፉን ተጭኗል') ; } //በተወሰነ የፍለጋ ውጤት ላይ ጠቅ ያድርጉ myBook = ይጠብቁን ገጽNew.waitForXPath("//*[[contains(text())፣ 'የሴሊኒየም መሞከሪያ መሳሪያዎች የማብሰያ መጽሐፍ ሁለተኛ እትም')]"፣{ የሚታይ፡ እውነት}) ከሆነ (myBook === null) {console.log ('መጽሐፍ አይገኝም'); } ሌላ{ myBook.click () ይጠብቁ; console.log ('ለማዘዝ የተወሰነ መጽሐፍ ላይ ጠቅ ያድርጉ'); } // አዲሱ ትር ከተከፈተ const pageTarget = pageNew.target(); const newTarget = አሳሽ ይጠብቁ።waitForTarget(ዒላማ => target.opener() === page Target); // አዲሱን ገጽ ነገር ያግኙ፡ const page2 = ጠብቅ newTarget.pageNew(); ይጠብቁ page2.setViewport ({ወርድ: 1280, ቁመት: 800}); // ወደ ጋሪ አክል እንጨምረህ addToCart = ጠብቅ page2.waitForXPath("//*/input[@id='add-to-cart-button']",{ የሚታይ፡ እውነት}); ከሆነ (addToCart === null) {console.log ('ወደ ጋሪ አክል አዝራር አይገኝም'); }ሌላ{console.log('ወደ ጋሪ አክል የሚለውን ጠቅ ያድርጉ'); addToCart ይጠብቁ () ጠቅ ያድርጉ; } // አረጋግጥ ወደ ጋሪው ሂደት ጨምር ስኬትሜሴጅ = ጠብቅ page2.waitForXPath("//*[(ጽሑፍ(ጽሑፍ() ላይ ተጨምሯል')]"፣{ የሚታይ፡ እውነት}); ከሆነ ( successMessage === null) {console.log ("ንጥል ወደ ጋሪ አልተጨመረም"); } ሌላ{console.log('ንጥሉ በተሳካ ሁኔታ ወደ ጋሪ ታክሏል'); } // የጋሪ ቁጥር ይቅረጹ cartCount = ይጠብቁ page2.waitForXPath("//*/span[@id='nav-cart-count']",{ የሚታይ፡ እውነት}); እሴት ይኑር = ይጠብቁ page2.መገምገም (el => el.textContent, cartCount) console.log ('የጋሪ ብዛት: ' + እሴት); cartCount.focus (); ይጠብቁ page2.screenshot ({ዱካ: ቅጽበታዊ ገጽ እይታ}); የመጠባበቅ ገጽNew.waitForTimeout(2000); ገጽ 2 ይጠብቁ. ዝጋ (); ገጽ ይጠብቁNew.close (); አሳሽ ይጠብቁ. ዝጋ (); })() } ያዝ (ስህተት) {console.error(ስህተት)}

ደረጃ 5# የአሻንጉሊት አውቶሜሽን ሙከራ አፈፃፀም፡-

ትዕዛዙን በመጠቀም አፈፃፀሙን ማስጀመር እንችላለን መስቀለኛ መንገድ ናሙና_script.js በትእዛዝ መጠየቂያው በኩል. በአፈፃፀም ወቅት የChromium አሳሽ ይከፈታል እና በራስ-ሰር ተግባራዊ እርምጃዎችን ያከናውናል እና የመጨረሻውን ገጽ ቅጽበታዊ ገጽ እይታ ያከማቻል። ቅጽበታዊ ገጽ እይታው እና የኮንሶል ውፅዓት ከዚህ በታች ይመስላሉ።

የአሻንጉሊት አውቶሜሽን ሙከራ - የኮንሶል ውፅዓት
የአሻንጉሊት አውቶሜሽን ሙከራ - የኮንሶል ውፅዓት
የአሻንጉሊት አውቶሜሽን ሙከራ - የተቀረጸ ማያ
የአሻንጉሊት አውቶሜሽን ሙከራ - የተቀረጸ ማያ

ማጠቃለያ:

በዚህ የአሻንጉሊት አውቶሜሽን ሙከራ አጋዥ ስልጠና፣ ስለ አሻንጉሊት አውቶሜሽን ሙከራ ስለ ዝርዝር ደረጃዎች ተምረናል። በሚቀጥለው የአሻንጉሊት ትምህርት ውስጥ፣ በብዛት ጥቅም ላይ ስለሚውሉ የአሻንጉሊት ክፍሎች እና ዘዴዎች ዝርዝር መግለጫ እንማራለን። እባክዎን ጠቅ ያድርጉ እዚህ የዚህን የአሻንጉሊት ማጠናከሪያ ትምህርት ማመሳከሪያውን ለመጎብኘት. 

አስተያየት ውጣ

የእርስዎ ኢሜይል አድራሻ ሊታተም አይችልም. የሚያስፈልጉ መስኮች ምልክት የተደረገባቸው ናቸው, *

ወደ ላይ ሸብልል