कैसे एक स्क्रीनशॉट लेने के लिए सेलेनियम वेबड्राइवर में



सेलेनियम वेबड्राइवर में स्क्रीनशॉट लेने के तरीके पर यह लेख आपको सीखने में मदद करता है कि TakesScreenshot पद्धति और TestNG श्रोताओं का उपयोग करके स्क्रीनशॉट कैसे कैप्चर किया जाए

स्वचालन परीक्षण ने आधुनिक दिन परीक्षण के एक नए नल को परिभाषित किया है और यह यहां रहने के लिए है। हालाँकि यदि परीक्षण प्रक्रिया विफल हो जाती है, तो पूरी स्क्रिप्ट का पुन: परीक्षण करना अत्यधिक असुविधाजनक होगा। यह वह जगह है जहाँ स्क्रीनशॉट काम में आते हैं, क्योंकि वे तुरंत परीक्षण विफलताओं का पता लगाने में मदद करते हैं। इस ब्लॉग के माध्यम से हम सीखेंगे कि स्क्रीनशॉट कैसे लिया जाता है वेबड्राइवर।

मैं निम्नलिखित विषयों पर चर्चा करूंगा:

तो, चलिए शुरू करते हैं, दोस्तों!





सेलेनियम वेबड्राइवर में स्क्रीनशॉट: स्वचालन परीक्षण में स्क्रीनशॉट की आवश्यकता क्यों है?

बग विश्लेषण के लिए स्क्रीनशॉट वांछनीय हैं। निष्पादन के दौरान स्वचालित रूप से स्क्रीनशॉट ले सकते हैं। मान लीजिए कि आप एक वेब पेज को स्वचालित करने के लिए एक परीक्षण स्क्रिप्ट लिखते हैं, तो आप यह देखने के लिए निगरानी नहीं रखेंगे कि क्या यह हर बार सही है। आप स्क्रिप्ट को अपना काम करने देंगे और आप किसी और काम में व्यस्त रहेंगे।

  • स्क्रीनशॉट हमें आवेदन के प्रवाह को समझने में मदद करता है और जांच करता है कि क्या यह तदनुसार व्यवहार कर रहा है।
  • आपको WebDriver का उदाहरण TakesScreenshot टाइप करना होगा।
  • यह प्रदर्शन करते समय आपकी मदद करता है क्रॉस-ब्राउज़िंग परीक्षण जैसा कि उपयोगकर्ता को निष्पादन की रिपोर्ट देखने की आवश्यकता होती है
  • यदि आप बिना सिर के ब्राउज़र पर काम कर रहे हैं, तो निष्पादन को ट्रैक करना बहुत आसान हो जाएगा।
  • जो परीक्षण विफल हुए, उनका स्क्रीनशॉट भी आसानी से पकड़ा जा सकता है।

अब, हम आगे बढ़ते हैं और सीखते हैं कि किसी एप्लिकेशन का परीक्षण करते समय आप वास्तव में स्क्रीनशॉट कैसे ले सकते हैं।



सेलेनियम वेबड्राइव में स्क्रीनशॉट: सेलेनियम में स्क्रीनशॉट कैप्चर कैसे करें?

सेलेनियम में स्क्रीनशॉट कैप्चर करने के लिए, हम एक इंटरफेस का उपयोग कर सकते हैं, जिसे कहा जाता है TakesSreenshot। इस विधि मैंड्राइवर को बताता है, कि यह स्क्रीनशॉट को कैप्चर कर सकता है और इसे विभिन्न तरीकों से स्टोर कर सकता है।

जावा में स्ट्रिंग परस्पर या अपरिवर्तनीय है

वाक्य - विन्यास:



फ़ाइल फ़ाइल = ((TakesScreenshot) ड्राइवर) .getScreenshotAs (OutputType.File) स्ट्रिंग स्क्रीनशॉटBase64 = ((TakesScreenshot) ड्राइवर) .getScreenshotAs (OutputType.BASE64)।

कहां है उत्पादन का प्रकार एक स्क्रीनशॉट के लिए आउटपुट प्रकार को परिभाषित करता है।

स्क्रीनशॉट को कैप्चर करने और किसी विशेष स्थान पर संग्रहीत करने के लिए, एक विधि है जिसे 'कहा जाता है' getScreenshotAs '

आइए इसे विस्तार से समझते हैं

वेबड्राइवर के विस्तार के लिए TakesSreenshot विधि, यह ब्राउज़र पर निर्भर करता है कि एक बेहतर क्रम में निम्नलिखित वापस करने के लिए सबसे अच्छा प्रयास करता है:

  • पूरा पृष्ठ
  • वर्तमान विंडो
  • वर्तमान फ्रेम के दृश्यमान भाग
  • संपूर्ण डिस्प्ले का एक स्क्रीनशॉट जिसमें ब्राउज़र है
  • HTML तत्व की संपूर्ण सामग्री - HTML तत्व का दृश्य भाग

वाक्य - विन्यास:

X getScreenshotAs (OutputType (X)। लक्ष्य) WebDriverException को फेंकता है

कहां है

  • एक्स विधि का वापसी प्रकार है
  • लक्ष्य गंतव्य का पता रखता है
  • फेंकता है यदि अंतर्निहित कार्यान्वयन स्क्रीनशॉट कैप्चरिंग का समर्थन नहीं करता है।

टेस्ट केस फेल हो गया

कुछ महान नई कार्यक्षमताओं के साथ आया है, जो किसी अनुप्रयोग का परीक्षण करना अधिक आसान बनाते हैं। इसकी वजह है जावास्क्रिप्ट सैंडबॉक्स के बाहर बातचीत की अनुमति देता है। नई उपयोगी कार्यक्षमता में से एक वेबड्राइवर से स्क्रीनशॉट लेने में सक्षम है।

git कमिट लॉग कैसे प्रिंट करें

आप परीक्षण के किसी भी चरण में स्क्रीनशॉट ले सकते हैं, लेकिन अधिकतर, इसका उपयोग परीक्षण के लिए किया जाता है विफल रहता है और स्क्रीनशॉट लेने से विश्लेषण में मदद मिलती है इसलिए हम देख सकते हैं कि परीक्षण में विफलता के दौरान क्या गलत हुआ। यह प्रयोग करके किया जा सकता है TestNG एनोटेशन।

ऐसा करने के लिए, सबसे पहले, मुझे इसकी आवश्यकता होगी

  • एक क्लास बनाएं और फिर लागू करेंTestNG G ITestListener '
  • फिर एक विधि को बुलाओ ‘OnTestFailure’
  • इस विधि में स्क्रीनशॉट लेने के लिए कोड जोड़ें।
  • केवल स्क्रीनशॉट लेने के बजाय, टेस्ट विधि नाम प्राप्त करें और परीक्षण नाम के साथ एक स्क्रीनशॉट लें और इसे गंतव्य फ़ोल्डर में रखें।

अब, सवाल यह है कि TestListeners वर्ग में TestNG का उपयोग करके चालक वस्तु को कैसे प्राप्त किया जाए?

मैं आपको यह समझने में मदद करूंगा कि ऐसा करना कितना आसान है।

सेलेनियम में स्क्रीनशॉट लेने के लिए, हमारे पास एक ड्राइवर ऑब्जेक्ट होना चाहिए। ITestContext के ड्राइवर को प्राप्त करें जिसे आधार सेटअप में सेट करना है जहां हमारे ड्राइवर का उदाहरण बनाना आसान है। आशा है आप लोग इससे स्पष्ट होंगे। आगे बढ़ते हुए, हम डेमो पर एक नज़र डालेंगे जहाँ मैं आपको यह समझने में मदद करूँगा कि सेलेनियम में स्क्रीनशॉट लेना कितना सरल है।

मैं यहां दो अलग-अलग कार्यक्रमों की व्याख्या कर रहा हूं, ताकि आप सेलेनियम में स्क्रीनशॉट लेने के बारे में एक उचित विचार प्राप्त कर सकें।

पहला प्रोग्राम सफलतापूर्वक चलाए जाने वाले परीक्षण मामले के स्क्रीनशॉट को कैसे कैप्चर करता है, के बारे में बताता है। दूसरा कार्यक्रम आपको यह समझने में मदद करता है कि परीक्षण विफलता के दौरान स्क्रीनशॉट कैसे लिया जाए।

सेलेनियम वेबड्राइवर में स्क्रीनशॉट: डेमो

जब आप वेब एप्लिकेशन का परीक्षण करना चाहते हैं, तो सबसे पहली चीज सेलेनियम जार फ़ाइलों और जावा पुस्तकालयों का होना है। आप अपनी पसंद का IDE चुन सकते हैं। मैं ग्रहण आईडीई पर काम करना पसंद करता हूं क्योंकि यह उपयोगकर्ता के अनुकूल है।

  • मैं ब्राउज़र ड्राइवर को सेट करूँगा
  • ChromeDriver के साथ ड्रायवर इंस्टेंस को त्वरित करें।
  • वेबपृष्ठ का URL प्राप्त करें।
  • इसी क्रिया को करें।

इस मामले में, मैं हमारे आधिकारिक वेबपेज का स्क्रीनशॉट लूंगा

नीचे दिए गए कोड का संदर्भ लें:

आयात java.io.ile आयात java.io.io.ception अपवाद आयात org.apache.commons.io.FileUtils आयात org.openqa.selenium.OutputType आयात org.openqa.selenium.TakesScreenshot आयात org.openqa.selenium.WebDriver आयात संगठन org.openq .selenium.chrome.ChromeDriver सार्वजनिक वर्ग स्क्रीन {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) अपवाद {System.setProperty ('webdriver.chrome.driver', 'C: UsersNeha_VaidyaDesktopchromedriver_win32chromedriver.exe' वेब साइट '। Driver.get ('http://www.edureka.co/')) TakesScreenshot ts = (TakesScreenshot) ड्राइवर फ़ाइल स्रोत = ts.getScreenshotAs (OutputType.File) FileUtils.copyFile (स्रोत, नई फ़ाइल) (स्क्रीनशॉट) / स्क्रीन .png ')) System.out.println (' स्क्रीनशॉट लिया गया है ') Driver.quit ())}

उपरोक्त कोड के लिए आउटपुट नीचे दर्शाया गया है:

ScreenOutput - सेलेनियम में स्क्रीनशॉट कैसे लें - एडुरका

और फ़ोल्डर में छवि शामिल है

html में br टैग क्या है

अब, आइए समझते हैं कि परीक्षा का स्क्रीनशॉट कैसे लिया जाए

  • प्रथम,
  • TestNG XML फ़ाइल जोड़ें।
  • मावेन निर्भरता जोड़ें।
  • एक क्लास बेसक्लास बनाएँ जो वेबड्राइवर उदाहरण रखता है।
  • आरंभीकरण () और विफल () दो कार्यों को परिभाषित करें
  • इन दोनों कार्यों को एक अन्य कक्षा में बुलाएं, डेमो जो बेसक्लास को विरासत में मिला है।
  • यह डेमो क्लास दो तरीकों को सेटअप () रखती है, जिसे इनिशियलाइज़ेशन () फंक्शन, टियरडाउन () कहते हैं, ड्राइवर और स्क्रीनशॉटशॉट () को बंद करने में मदद करता है, जहाँ हम वास्तविक और अपेक्षित आउटपुट का दावा करते हैं।
  • इस मामले में, मैं सच और गलत दोनों का दावा करूंगा, जिसके परिणामस्वरूप परीक्षण का मामला विफल हो जाएगा।
  • एक और वर्ग, ListenersClass बनाएं जो WebDriver को विशेष घटनाओं को सुनने में मदद करता है।
  • परीक्षण मामले को सुनने के लिए मुख्य कोड से पहले डेमो कोड @Listeners (HearersClass.class) में इस कोड को जोड़ें।

आप इस कोड का उल्लेख कर सकते हैं:

बेसक्लास

पैकेज com.edureka import java.io.ile आयात java.io.IOException आयात org.apache.commons.io.FileUtils import org.openqa.selenium.OutputType आयात org.openqa.selenium.TakesScreenshot import org.openqa.selenium.Webver import org.openqa.selenium.chrome.ChromeDriver import org.testng.annotations.isteners जनता वर्ग BaseClass {सार्वजनिक स्थैतिक WebDriver ड्राइवर सार्वजनिक स्थैतिक शून्य आरंभीकरण () {System.setProperperty ('webdriver.chrome.driver', 'C: UsersNehaha_VadyaVaidver exe ') ड्राइवर = नया ChromeDriver () ड्राइवर.गेट (' http://www.edureka.co/ ')} सार्वजनिक शून्य विफल () {फ़ाइल srcFile = ((TakesScreenshot) ड्राइवर) .getScreenshotAs (OutputType.File) प्रयास करें। {FileUtils.copyFile (srcFile, नई फ़ाइल ('/ C: / Users / Neha_Vaidya / ग्रहण-कार्यक्षेत्र / स्क्रीन /' + स्क्रीनशॉट स्क्रीनशॉट / test.jpg '))} कैच (IOException e) {e.printStackTrace ()}} }

डेमोक्लास

पैकेज com.edureka import org.testng.Assert import org.testng.annotations.AfterMethod import org.testng.annotations.BeforeMethod import org.testng.annotations.Listenerseners org.testng.annotations.Test @Listeners (HearersClass.class) सार्वजनिक आयात करें क्लास डेमो का विस्तार बेसक्लास {@BeforeMethod public void setUp () {initialization ()} @AfterMethod public void tearDown () {driver.quit ()} @Test public void takeScreenshotTest () {Assert.assertEquals (true, false)}।

श्रोतागण

पैकेज com.edureka import org.testng.ITestContext import org.testng.ITestListener import org.testng.ITestResult सार्वजनिक वर्ग के श्रोता-वर्ग बेसक्लास लागू करता है। (ITestResult result) {// TODO ऑटो-जनरेट किया गया तरीका stub} public void onTestFailure (ITestResult result) {System.out.println ('Failed Test') फेल हो गया ()} public void inTestSkipped (ITestResult result) {// TODO Auto- उत्पन्न विधि स्टब} सार्वजनिक शून्य onTestFailedButWithinSuccessPercentage (ITestResult परिणाम) {// TODO ऑटो-जनरेट किया गया विधि स्टब} सार्वजनिक शून्य onStart (ITestContext संदर्भ) {// TODO ऑटो-जेनरेट किया गया विधि स्टब} सार्वजनिक शून्य onFinish (ITestContext संदर्भ)। -सुधार विधि stub}}

आउटपुट को इस तरीके से दर्शाया गया है:

इसके साथ, हम इस 'सेलेनियम वेबड्राइवर में एक स्क्रीनशॉट कैसे लें' ब्लॉग पर आते हैं। मुझे उम्मीद है कि आप लोग इस लेख का आनंद लेंगे और समझ गए होंगे कि टेस्ट केस कैसे चलाया जाता है। क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया इसे 'सेलेनियम वेबड्राइवर में स्क्रीनशॉट कैसे लें' के टिप्पणी अनुभाग में उल्लेख करें और हम आपके पास वापस आ जाएंगे। यदि आप सेलेनियम वेबड्राइवर के बारे में अधिक जानना चाहते हैं और उसी में अपना करियर बनाना चाहते हैं, तो हमारी जाँच करें जो प्रशिक्षक के नेतृत्व वाले लाइव प्रशिक्षण और वास्तविक जीवन की परियोजना के अनुभव के साथ आता है। यह प्रशिक्षण आपको सेलेनियम परीक्षण को गहराई से समझने में मदद करेगा और आपको इस विषय पर महारत हासिल करने में मदद करेगा।