71 अनुत्तरित गंभीर सेलेनियम साक्षात्कार प्रश्न

सेलेनियम साक्षात्कार प्रश्नों के इस ट्यूटोरियल में, हम सभी महत्वपूर्ण सेलेनियम साक्षात्कार प्रश्नों को उन्नत सेलेनियम ऑटोमेशन फ्रेमवर्क साक्षात्कार प्रश्नों के साथ कवर करेंगे। यह ट्यूटोरियल तीन खंडों में विभाजित है:

सेलेनियम फ्रेमवर्क साक्षात्कार प्रश्न

एडवांस सेलेनियम साक्षात्कार प्रश्न

इंटरमीडिएट सेलेनियम साक्षात्कार प्रश्न

ध्यान दें : इस सेलेनियम साक्षात्कार प्रश्न और उत्तर ट्यूटोरियल का ध्यान सबसे महत्वपूर्ण और जटिल प्रश्नावली पर चर्चा करना है क्योंकि आप पहले से ही मूल प्रश्नावली के बारे में जानते होंगे।

प्रारंभ में हम एडवांस सेलेनियम फ्रेमवर्क साक्षात्कार प्रश्न और उत्तर के साथ शुरुआत करेंगे और फिर क्रिटिकल/एडवांस्ड सेलेनियम साक्षात्कार प्रश्न और उत्तर को आगे बढ़ाएंगे और फिर अंत में हम इस ट्यूटोरियल को मध्यवर्ती स्तरों के साथ समाप्त करेंगे ताकि आप अच्छी तरह से तैयारी कर सकें।

सेलेनियम साक्षात्कार प्रश्न
सेलेनियम साक्षात्कार प्रश्न

सेलेनियम फ्रेमवर्क साक्षात्कार प्रश्न

एडवांस सेलेनियम साक्षात्कार प्रश्न

इंटरमीडिएट सेलेनियम साक्षात्कार प्रश्न

सेलेनियम फ्रेमवर्क साक्षात्कार प्रश्न: 

सेलेनियम ढांचे के कितने लोकप्रिय प्रकार हैं?

सेलेनियम ढांचे के चार अलग-अलग प्रकार हैं, जो हैं: 

पेज ऑब्जेक्ट मॉडल ढांचे को डिजाइन करने के लिए कितने अलग-अलग दृष्टिकोण हैं?

सेलेनियम में पृष्ठ कारखाना क्या है?

PageFactory सेलेनियम लाइब्रेरी से एक वर्ग है, जिसे org.openqa.selenium.support कहा जाता है, जो पेज ऑब्जेक्ट मॉडल फ्रेमवर्क में पेज ऑब्जेक्ट डिज़ाइन पैटर्न को डिजाइन करने में मदद करता है, जिसमें कुछ कार्यान्वयन हैं:

क्लासिक पेज ऑब्जेक्ट मॉडल और अनुकूलित पेज ऑब्जेक्ट मॉडल के बीच महत्वपूर्ण अंतर क्या है?

इसलिए प्रत्येक वेबपेज में लोकेटरों को स्टोर करने के लिए एक इंटरफ़ेस होना चाहिए और पेज स्तर के वेब संचालन और उनके सम्मान के लिए 1 वर्ग होना चाहिए।

पेज ऑब्जेक्ट मॉडल फ्रेमवर्क का डिजाइन सिद्धांत क्या है?

पृष्ठ ऑब्जेक्ट मॉडल ढांचे का डिज़ाइन सिद्धांत उन सिद्धांतों या अवधारणाओं पर आधारित है, जो हैं: 

इसलिए, सभी पृष्ठ क्रियाएं (वेब ​​पेज की कार्यक्षमता के विभिन्न संचालन) संबंधित पेज कक्षाओं पर रहती हैं।

पेज ऑब्जेक्ट मॉडल और हाइब्रिड पेज ऑब्जेक्ट मॉडल के बीच महत्वपूर्ण अंतर का उल्लेख करें?

पेज ऑब्जेक्ट मॉडल और हाइब्रिड पेज ऑब्जेक्ट मॉडल के बीच का अंतर यह है कि हाइब्रिड पेज ऑब्जेक्ट मॉडल पेज ऑब्जेक्ट मॉडल फ्रेमवर्क डिज़ाइन पर आधारित है और डेटा-संचालित फ्रेमवर्क की व्यापक विशेषताओं के साथ है और नीचे दिए गए डेटा संचालन उपयोगिताओं की एक विस्तृत विविधता का समर्थन करता है। : 

ककड़ी -BDD फ्रेमवर्क में Parser का उपयोग किस भाषा में किया जाता है?

Cucumber -BDD फ्रेमवर्क में प्रयुक्त भाषा पार्सर Gherkin है।

गेरकिन भाषा क्या है?

गेरकिन डीएसएल (डोमेन स्पेसिफिक लैंग्वेज) और अंग्रेजी जैसी भाषा है, जो बहुत पठनीय और समझने योग्य है (यानी, दे (), कब (), फिर (), आदि)

Gherkin में दिए गए () से आपका क्या मतलब है?

 दिया () विधि बताती है कि कुछ स्थिति या परिदृश्य दिया या कहा गया है।

 Gherkin में कब () से क्या मतलब है?

जब () का अर्थ है जब आप कुछ ऑपरेशन करते हैं।

तब तक () में गेरकिन का क्या मतलब है?

तब () का उपयोग दिए गए कार्यों () के बाद किए गए कार्यों के बाद अभिकथन के रूप में किया जाता है। (जब)।

क्या सीआई उपकरण आप ढांचे के हिस्से के रूप में उपयोग करते हैं?

हम जेनकिन्स (प्रमुख रूप से) एक ओपन-सोर्स सीआई टूल के रूप में उपयोग करते हैं।

फ्रेमवर्क के हिस्से के रूप में आप किस टूल का उपयोग करते हैं?

हम मावेन / ग्रेडल / चींटी जैसे निर्माण उपकरणों का उपयोग करते हैं (यह पहले इस्तेमाल किया गया था)।

मावेन और ग्रैडल के बीच मुख्य अंतर क्या है?

ग्रेडल, मावेन का प्रदर्शन करने का उन्नत संस्करण है, और इसके साथ ही, हम कार्यों को भी बना सकते हैं (जैसे कि एएनटी में उपलब्ध सुविधा), इसलिए हम उच्च स्तर पर विचार कर सकते हैं: 

पदतल = >> मावेन + चींटी 

सेलेनियम सी # के हिस्से के रूप में, हम गैलियो का उपयोग एक निर्माण उपकरण के रूप में करते हैं। 

सेल टेस्ट फ्रेमवर्क क्या है जिसे हम सेलेनियम ऑटोमेशन फ्रेमवर्क के हिस्से के रूप में उपयोग करते हैं?

हम सेलेनियम के साथ स्वचालन ढांचे का निर्माण करते समय यूनिट टेस्ट फ्रेमवर्क के भाग के रूप में टेस्टन जी / यूनाइट (जेयूनीट का आजकल कम उपयोग किया जाता है) का उपयोग करते हैं। 

सेलेनियम सी # फ्रेमवर्क के एक हिस्से के रूप में, हम यूनिट टेस्ट फ्रेमवर्क के रूप में NUnit / MbUnit का उपयोग करते हैं।

सेलेनियम ढांचे के हिस्से के रूप में रिपोर्टिंग टूल को डिज़ाइन करते समय क्या दृष्टिकोण लिया जा सकता है?

रूपरेखा तैयार करते समय हम विभिन्न रिपोर्टिंग दृष्टिकोण अपना सकते हैं:

इन ओपन-सोर्स रिपोर्टिंग टूल्स इंटीग्रेशन के अलावा, हम नीचे दी गई तकनीकों और टूल्स के साथ निर्माण के लिए कुछ उन्नत रिपोर्टिंग फीचर्स या डैशबोर्ड का विकल्प भी चुन सकते हैं:

सेलेनियम फ्रेमवर्क के साथ रिपोर्टिंग डैशबोर्ड बनाने के लिए आप ELK का उपयोग कैसे करते हैं:

एक मूल आधार डिजाइन सिद्धांत है जिसका उपयोग स्वचालन डैशबोर्ड को डिजाइन करने के लिए किया जा रहा है, जो हैं: 

आप HTML अनुकूलित रिपोर्ट कैसे बनाते हैं?

आप TestNg द्वारा प्रदान किए गए विभिन्न श्रोताओं और संवाददाताओं के इंटरफेस का उपयोग करके घटनाओं और उनके संबंधित डेटा सेट को रिकॉर्ड कर सकते हैं और उन डेटा सेट और HTML टैग का उपयोग करके रिपोर्ट बर्तनों में HTML बना सकते हैं।

ढांचा विकसित करते समय आपने किन चुनौतियों का सामना किया है?

विभिन्न प्रकार की चुनौतियाँ हैं जिनका आप अपने अनुभव के अनुसार उल्लेख कर सकते हैं। 

उल्लेख करें कि आपने अपने सेलेनियम फ्रेमवर्क में किन सभी सेलेनियम घटकों का उपयोग किया है?

आप अपने ढांचे के आधार पर उल्लेख कर सकते हैं।

आपके स्वचालन ढांचे का प्रवाह क्या है?

आप अपने फ्रेमवर्क प्रवाह और आपके द्वारा उपयोग किए जाने वाले उपकरणों के आधार पर अपने ढांचे के निष्पादन के प्रवाह का उल्लेख कर सकते हैं; नीचे एक उदाहरण है जिसका आप उल्लेख कर सकते हैं:

CI (जेनकिन्स) → बिल्ड टूल्स (मावेन /Gradle) → यूनिट टेस्ट फ्रेमवर्क (TestNg) → TestNg.xml - >> TestClasses → BaseTest (हर टेस्ट क्लास बेस क्लास को बेसटेस्ट के रूप में बढ़ाता है जहाँ @beforeClass / @ इससे पहले @AfterClass आदि से बाहर निकलता है) -> TestMethods → PageClasses → पेज मेथड्स WebAction उपयोगिताओं के लिए पुन: प्रयोज्य वर्ग) - >> रिपोर्टिंग बर्तन 

डेटा-चालित ढांचे से आप क्या समझते हैं, और हम डेटा चालित ढांचे का उपयोग कहाँ करते हैं?

डेटा-चालित ढांचा मूल रूप से एक ढांचा है जो डेटा द्वारा संचालित होता है। कहा जाता है कि, जिसमें अनुप्रयोग या अनुप्रयोग के प्रकार जहां एक ही परीक्षण के मामले या परिदृश्य को अलग-अलग डेटा सेटों के साथ कई बार निष्पादित किया जाता है या स्रोत या डेटा उस मामले की तरह बहुत विशाल होता है, जहां हमें विभिन्न प्रकार की सहभागिता करने की आवश्यकता होती है डेटा स्रोत वहां हम डेटा-संचालित फ्रेमवर्क का उपयोग करते हैं। 

विभिन्न डेटा स्रोत हो सकते हैं: 

एक साक्षात्कार में सेलेनियम स्वचालन ढांचे की व्याख्या कैसे करें?

 एक साक्षात्कार में सेलेनियम स्वचालन ढांचे की व्याख्या करने के लिए आप विभिन्न दृष्टिकोण अपना सकते हैं; सबसे अच्छा संभव तरीका मॉड्यूलर दृष्टिकोण हो सकता है, जो विभिन्न अलग-अलग मॉड्यूलों में स्पष्टीकरण को तोड़ना है, जैसे:

आइए विस्तार से चर्चा करें: 

फ्रेमवर्क और कुंजी और फ्रेमवर्क की अनूठी विशेषताओं के प्रकार:

आपको हाइब्रिड फ्रेमवर्क, पेज ऑब्जेक्ट मॉडल फ्रेमवर्क, हाइब्रिड पेज ऑब्जेक्ट मॉडल फ्रेमवर्क, इत्यादि के प्रकार का उल्लेख करना होगा। 

आपको रूपरेखा की अनूठी विशेषताओं का उल्लेख करना होगा, जैसे कि उदाहरण के लिए:

सेलेनियम ढांचे में प्रयुक्त उपकरण और प्रौद्योगिकी:

आप ढांचे को विकसित करते समय उपयोग किए जाने वाले उपकरणों और प्रौद्योगिकियों का उल्लेख कर सकते हैं, जैसे:

सेलेनियम फ्रेमवर्क के निष्पादन का प्रवाह:

आप फ्रेमवर्क निष्पादन के प्रवाह का उल्लेख कर सकते हैं, अर्थात, आप परीक्षण सूट को कैसे ट्रिगर करते हैं और यह परीक्षण मामलों / विधियों में कैसे प्रवाहित होता है और जब तक फ्रेमवर्क यूटिलिटीज जैसे कि वेबटाइल, डेटा बर्तन आदि, आप उपरोक्त प्रश्न का उल्लेख कर सकते हैं। जहां हमने चर्चा की कि सेलेनियम ढांचे के निष्पादन के प्रवाह को कैसे समझाया जाए।

आपके फ्रेमवर्क द्वारा नियंत्रित विभिन्न गंभीर परिदृश्य:

इस मॉड्यूल में, आप उन महत्वपूर्ण विशेषताओं पर चर्चा कर सकते हैं, जिन्हें आपके फ्रेमवर्क के साथ आपके एप्लिकेशन ऑटोमेशन के भाग के रूप में स्वचालित किया गया है। ऐसे कई उपयोग मामले या विशेषताएं हैं जिनका आप यहां उल्लेख कर सकते हैं, जैसे: 

सेलेनियम ढांचे में लॉगिंग परिदृश्यों को कैसे डिज़ाइन करें?

आप लॉगिंग के लिए log4j का उपयोग कर सकते हैं, या आप ग्रेवलॉग के साथ रीयल-टाइम लॉगिंग और डीबगिंग डैशबोर्ड कार्यान्वयन का उपयोग कर सकते हैं, जो मूल रूप से वास्तविक समय लॉगिंग और डीबगिंग विवरण के लिए बैकएंड में ElasticSearch का उपयोग करता है।

रूपरेखा डिज़ाइन करते समय आपने कौन से डिज़ाइन पैटर्न का उपयोग किया है?

आप ऑटोमेशन ढांचे की जरूरत और डिजाइन के अनुसार विभिन्न डिजाइन पैटर्न का उपयोग कर सकते हैं, जैसे:

महत्वपूर्ण या अग्रिम सेलेनियम साक्षात्कार प्रश्न:

आप अपने स्वचालन स्क्रिप्ट को समानांतर रूप से कितने तरीके से चला सकते हैं?

ऐसे कई तरीके और तरीके हैं जिनके माध्यम से आप अपनी टेस्ट स्क्रिप्ट को समानांतर रूप से चला सकते हैं, जैसे: 

मावेन:

अचूक प्लगइन का उपयोग करना: 

 सच

यहाँ कांटा गिनती समानांतर धागों की संख्या का प्रतिनिधित्व करती है।

ग्रेडेल: 

tasks.withType(Test) {
        maxParallelForks = Runtime.runtime.availableProcessors()
    }

सेटस्पीड () और स्लीप () के तरीकों में क्या अंतर है?

सेलेनियम में setSpeed ​​() विधि मूल रूप से प्रत्येक और हर क्रिया / कमांड के निष्पादन की गति निर्धारित करती है। 

तो चलिए बताते हैं कि अगर आप सेट करें ("2000"), तो निष्पादन की प्रत्येक पंक्ति 2000 मिलीसेकंड तक देरी हो जाएगी। 

दूसरी ओर, थ्रेड.सेलेप () 3000 मिली सेकेंड की देरी का परिचय देगा (यह विशिष्ट ऑपरेशन के लिए थ्रेड को निलंबित कर देगा)। 

इसलिए नींद () 1 ऑपरेशन पर लागू होती है; दूसरी ओर, setSpeed ​​() प्रत्येक और हर ऑपरेशन के लिए देरी का परिचय देता है और इस प्रकार निष्पादन की गति निर्धारित करता है।  

सेलेनियम के साथ एक स्क्रॉलबार की उपस्थिति को कैसे सत्यापित करें? 

सेलेनियम के साथ वेबपेज में क्षैतिज स्क्रॉल बार को सत्यापित करने के लिए, हम नीचे दिए गए तरीके से Javascriptexecutor का उपयोग करते हैं: 

JavascriptExecutor javascriptExecutor = (JavascriptExecutor) driver;
Boolean presenceOfHorizontalScroll = (Boolean) javascriptExecutor.executeScript("return document.documentElement.scrollWidth>document.documentElement.clientWidth;");

वेबपेज में वर्टिकल स्क्रॉल बार को सत्यापित करने के लिए सेलेनियम वेबड्राइवर भी हमें Javascriptexecutor का उपयोग करने की आवश्यकता है

JavascriptExecutor javascriptExecutor = (JavascriptExecutor) driver;
Boolean presenceOfVerticalScroll  = (Boolean) javascriptExecutor.executeScript("return document.documentElement.scrollHeight>document.documentElement.clientHeight;");

सेलेनियम वेबड्राइवर में किसी भी छिपे हुए वेब तत्वों को संभालने के लिए कोड लिखें?

WebElement element=driver.findElement(By.id("id_of_Element"));
JavascriptExecutor jsExecutor = (JavascriptExecutor)driver;
jsExecutor.executeScript("arguments[0].click();", element);

सेलेनियम वेबड्राइवर का उपयोग करके विंडो आधारित पॉप अप को संभालने के लिए विभिन्न तरीकों का उल्लेख करें?

आप विंडो आधारित एप्लिकेशन जैसे विंडो पॉप अप को संभालने के लिए नीचे दिए गए तरीकों का उपयोग कर सकते हैं: 

WebDriver का मूल इंटरफ़ेस क्या है?

खोज प्रसंग

POI और JXL जार के बीच महत्वपूर्ण अंतर का उल्लेख करें?

POI सशर्त स्वरूपण, समृद्ध पाठ स्वरूपण या xlsx प्रारूप का समर्थन करता है, लेकिन दूसरी ओर, JXL इनमें से किसी भी विशेषता का समर्थन नहीं करता है।

JXL की तुलना में POI लाइब्रेरी का रखरखाव और अद्यतन किया जाता है।

आप सेलेनियम का उपयोग करके अपने नेटवर्क के विलंब को कैसे संभालेंगे?

हम सेलेनियम में नेटवर्क विलंबता को संभालने के लिए निम्नलिखित का उपयोग कर सकते हैं: 

ड्राइवर.प्रबंधन.पेजलोडिंगसमय

सेलेनियम वेबड्राइवर के साथ अजाक्स सामग्री परीक्षण को संभालने के लिए आप क्या दृष्टिकोण अपनाएंगे?

AJAX मूल रूप से अतुल्यकालिक जावास्क्रिप्ट और XML है। AJAX आधारित एप्लिकेशन का सभी संचार अतुल्यकालिक कॉल पर आधारित है, 

जो वेबपेज को रिफ्रेश किए बिना किसी भी घटना को करने की अनुमति देता है। प्रत्येक ऑपरेशन अन्य घटनाओं से स्वतंत्र रूप से किया जा सकता है।

AJAX कॉल के साथ काम करते समय क्या चुनौतियाँ हैं सेलेनियम वेबड्राइवर?

AJAX एप्लिकेशन के साथ काम करने के लिए, आपको उपर्युक्त उपयोग के मामलों की प्रतीक्षा करने की आवश्यकता हो सकती है: 

सेलेनियम वेबड्राइवर में प्रॉक्सी के साथ काम करने का तरीका क्या है?

दो अलग-अलग दृष्टिकोण हैं जिन्हें आप सेलेनियम वेबड्राइवर में प्रॉक्सी को संभाल सकते हैं: 

Proxy proxy=new Proxy();
proxy.setHttpProxy("localhost:8889");
DesiredCapabilities capabilities=new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY, proxy);
WebDriver driver=new FirefoxDriver(capabilities);

WebDriver में सिंक्रोनाइज़ेशन प्राप्त करने के तरीकों का उल्लेख करें?

हम अलग-अलग प्रतीक्षा तंत्र का उपयोग करके सेलेनियम वेबड्राइवर में सिंक्रनाइज़ेशन को संभाल सकते हैं: 

TestNg @BeforeTest और @BeforeMethod के बीच प्रमुख अंतर का उल्लेख करें? 

TestNg में @BeforeTest और @BeoreMethod के अलग-अलग पहलू हैं:

सेलेनियम में मौजूद विभिन्न प्रकार के वेबड्राइवर एपीआई की सूची दें?

कितने तरीकों से आप सेलेनियम के साथ सिर रहित निष्पादन प्राप्त कर सकते हैं?

हम सेलेनियम के साथ सिर रहित स्वचालन को प्राप्त करने के लिए नीचे के ड्राइवरों का उपयोग कर सकते हैं: 

सेलेनियम वेबड्राइवर में धाराप्रवाह प्रतीक्षा क्या है?

फ़्लुएंटवेट के साथ, आप किसी विशिष्ट स्थिति को पूरा करने के लिए अधिकतम समय निर्धारित कर सकते हैं (मान लें कि 3 मिनट) और उस समय के दौरान, आप एक निश्चित आवृत्ति (बहुत छोटी इकाई समय) के साथ लगातार मतदान या जाँच करेंगे, आइए बताते हैं 3 सेकंड) जाँच करने के लिए।

यदि शर्त पूरी हो जाती है, तो यह सच हो जाएगा, और यदि नहीं, तो यह "ElementNotVoubleException" अपवाद को फेंक देगा।

सेलेनियम में धाराप्रवाह का वाक्य विन्यास है:

Wait fluentWait = new FluentWait(driver).withTimeout(100, TimeUnit.SECONDS)
  .pollingevery(2, TimeUnit.SECONDS)
  .ignoring(ElementNotVisibleException.class);

`सेलेनियम वेबड्राइवर के साथ काम करने के दौरान आपको मिले कुछ सेलेनियम अपवादों के बारे में बताएं?

आप सेलेनियम में कुकीज़ कैसे हटाते हैं?

सेलेनियम में कुकीज़ को हटाने का आदेश है: 

driver.manage().deleteAllCookies();

दृष्टिकोण स्पष्ट करें कि आप सेलेनियम वेबड्राइवर में जावास्क्रिप्ट चर कैसे पढ़ते हैं?

हमें ऐसा करने में सक्षम होने के लिए JavascriptExecutor का उपयोग करने की आवश्यकता है। 

JavascriptExecutor jsExecutor = (JavascriptExecutor) webdriver;
String jsVariable = (String.valueOf(jsExecutor.executeScript("return document.title")));

सेलेनियम में ज़ूम इन और ज़ूम आउट ब्राउज़र ऑपरेशन कैसे करें?

हम सेलेनियम में दो अलग-अलग तरीकों का उपयोग करके ज़ूम इन और ज़ूम आउट ऑपरेशन कर सकते हैं, जैसे: 

सेलेनियम में रोबोट वर्ग का उपयोग करके ज़ूम इन करें

Robot robotInstance = new Robot();
//Zoom in

robotInstance.keyPress(KeyEvent.VK_CONTROL);
robotInstance.keyPress(KeyEvent.VK_ADD);
robotInstance.keyRelease(KeyEvent.VK_ADD);
robotInstance.keyRelease(KeyEvent.VK_CONTROL);

सेलेनियम में रोबोट वर्ग का उपयोग करके ज़ूम आउट करें


Robot robotInstance = new Robot();
robotInstance.keyPress(KeyEvent.VK_CONTROL);
robotInstance.keyPress(KeyEvent.VK_SUBTRACT);
robotInstance.keyRelease(KeyEvent.VK_SUBTRACT);
robotInstance.keyRelease(KeyEvent.VK_CONTROL);

सेलेनियम में कीज़ क्लास का उपयोग करके ज़ूम इन करें

driver.findElement(By.tagName("html")).sendKeys(Keys.chord(Keys.CONTROL,Keys.ADD));

सेलेनियम में रोबोट वर्ग का उपयोग करके ज़ूम आउट करें

driver.findElement(By.tagName("html")).sendKeys(Keys.chord(Keys.CONTROL,Keys.SUBTRACT));

स्पष्ट () पद्धति का उपयोग किए बिना सेलेनियम में फ़ील्ड को कैसे साफ़ करें?

हम नीचे के दृष्टिकोण में स्पष्ट () पद्धति का उपयोग किए बिना किसी भी क्षेत्र को साफ कर सकते हैं: 

हम उसी को प्राप्त करने के लिए सेलेनियम में कीज़ क्लास का उपयोग कर सकते हैं: 

WebElement element = driver.findElement(By.id("id_of_Element"));
element.sendKeys(Keys.chord(Keys.CONTROL, "a"));
element.sendKeys(Keys.DELETE);

सेलेनियम में विफल परीक्षण मामलों को फिर से कैसे करें?

हम नीचे के दो दृष्टिकोणों में सेलेनियम में असफल परीक्षण के मामलों को फिर से जोड़ सकते हैं:

स्वतः जनरेट किए गए TestNG-fail.xml के साथ:

परीक्षण निष्पादन के बाद (testng.xml से चलाया गया), TestNG स्वचालित रूप से TestNG-fail.xml उत्पन्न करता है; आप केवल असफल परीक्षण चलाने के लिए एक ही XML को फिर से चला सकते हैं।

लागू करके टेस्टनेट से IRetryAnalyzer इंटरफ़ेस :

IRetryAnalyzer के इंटरफ़ेस को लागू करके हम स्वचालित रूप से TestNg के साथ असफल परीक्षण के मामलों को फिर से जोड़ सकते हैं:


If you implement the IRetryAnalyzer you can auto rerun  failed test with TestNg :

public class Retry implements IRetryAnalyzer {
   int counter = 1;
   int retryMaxLimit = 3;
   public boolean retry(ITestResult result) {
       if (counter < retryMaxLimit) {
           counter++;
           return true;
       }
       return false;
   }
}

सेलेनियम वेबड्राइवर में तत्व को कैसे हाइलाइट करें?

हम तत्व का उल्लेख करके Webelement के रंग को सेट करने के लिए JavascriptExecutor का उपयोग कर सकते हैं।


WebElement element = driver.findElement(By.xpath("id_of_the_element"));
JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;
jsExecutor.executeScript("arguments[0].setAttribute('style', 'background: red; border: 2px solid red;');", element);

सेलेनियम में डबल क्लिक कैसे करें?

हम उपयोग कर सकते हैं सेलेनियम में क्रियाएँ वर्ग नीचे दिए गए तरीके से DoubleClick संचालन करने के लिए। नीचे दी गई विधि एक तर्क लेती है जिस पर आपको DoubleClick निष्पादित करना है।

public void doubleClick(By locator) {
\t\ttry {
\t\t\tWebElement element = driver.findElement(locator);
\t\t\tActions actions = new Actions(driver).doubleClick(element);
\t\t\tBASE_LOGGER.info("Performed the double Click on the Element  : " + locator);
\t\t} catch (StaleElementReferenceException e) {
\t\t\tBASE_LOGGER.error("Element is not attached to the page document " + e.getCause().getMessage());
\t\t} catch (NoSuchElementException e) {
\t\t\tBASE_LOGGER.error("Element " + locator + " was not found in DOM " + e.getCause().getMessage());
\t\t} catch (Exception e) {
\t\t\tBASE_LOGGER.error("Element " + locator + " was not clickable " + e.getCause().getMessage());
\t\t}
\t}

सेलेनियम में स्क्रॉल कैसे करें?

स्क्रॉल करने के लिए हमें जावास्क्रिप्ट का उपयोग करने की आवश्यकता है, और नीचे दी गई विधि तत्व में स्क्रॉल करने के लिए एक उन्नत दृष्टिकोण प्रदान करती है जब तक कि तत्व दिखाई नहीं देता है, जो कि स्क्रॉल में है: 

public void scrollIntoView(By locator) {

  try {
     JavascriptExecutor executor = (JavascriptExecutor) driver;
     WebElement element = driver.findElement(locator);
     executor.executeScript("arguments[0].scrollIntoView(true);", element);
     BASE_LOGGER
           .info("scrollIntoView operation has been performed for the locator : " + String.valueOf(element));
  } catch (Exception e) {
     String exceptionData = e.getCause().getMessage();
     BASE_LOGGER.error("Error encountered i.e : " + exceptionData
           + " while performing scrollIntoView on the element : " + locator);

  }

}

सेलेनियम में पेज पर सभी लिंक कैसे प्राप्त करें?

हम पेज पर उपलब्ध सभी लिंक्स को लाने के लिए By.tagName ("a") का उपयोग कर सकते हैं, जो लिंक को टैग के रूप में संदर्भित करता है जिसे a कहा जाता है; विधि नीचे तरीके से जाती है: 

public List<WebElement> getAllLinks() {

  try {
     List<WebElement> allLinks = driver.findElements(By.tagName("a"));
     int numberOfLinks = allLinks.size();
     BASE_LOGGER.info("Number of Links in the Current Page is : " + numberOfLinks);
     BASE_LOGGER.info("GetAllLinks operation has been performed for the Current Page : ");
     return allLinks;
  } catch (Exception e) {
     String exceptionData = e.getCause().getMessage();
     BASE_LOGGER.error("Error encountered i.e : " + exceptionData
           + " while performing GetAllLinks for the Current Page :");
     return null;
  }

}

सेलेनियम में एक पृष्ठ पर iframes की संख्या कैसे पता करें?

हम सेलेनियम में एक पृष्ठ में iframes की संख्या का पता लगाने के लिए नीचे दी गई विधि का उपयोग कर सकते हैं:

public int numberOfIframesInPage() {
  try {
     JavascriptExecutor exe = (JavascriptExecutor) driver;
     Integer numberOfIFrames = Integer.parseInt(exe.executeScript("return window.length").toString());
     BASE_LOGGER.info("Number of IFrames in the current Window are : " + numberOfIFrames);
     return numberOfIFrames;

  } catch (Exception e) {
     BASE_LOGGER
           .error("Exception occurred in Finding numberOfIframesInPage with : " + e.getCause().getMessage());
     return 0;
  }

}

सेलेनियम वेबड्राइवर में डिफ़ॉल्ट फ्रेम में कैसे स्विच करें?

हम सेलेनियम वेबड्राइवर में डिफ़ॉल्ट फ्रेम पर स्विच करने के लिए switchTo ()। DefaultContent () विधि का उपयोग कर सकते हैं: 

public void switchToDefaultFrame() {
  try {
     driver.switchTo().defaultContent();
     BASE_LOGGER.info("Switched to Default Content ");
  } catch (Exception e) {
     BASE_LOGGER.error("Exception Occurred while switching to default Content ");
  }
}

सेलेनियम में टैब कैसे संभालें?

हम उपलब्ध टैब को स्टोर करने के लिए एक सूची का उपयोग कर सकते हैं और टैब को स्टोर करने के लिए Driver.getWindowHandles () का उपयोग कर सकते हैं, और एक बार इसके बाद, हम नीचे दिए गए दृष्टिकोण में एक-एक करके टैब को संभाल सकते हैं, जैसे: 

public void switchToTab(int indexOfTab) {

  try {

     ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
     driver.switchTo().window(tabs.get(indexOfTab));
     BASE_LOGGER.info("Successfully switched to tab with tab index as : " + indexOfTab);
  } catch (Exception e) {
     String exceptionData = e.getCause().getMessage();
     BASE_LOGGER.error(
           "Unable to Switch to Tab for :" + indexOfTab + " i.e failed with exception as : " + exceptionData);

  }



}

इंटरमीडिएट सेलेनियम साक्षात्कार प्रश्न

WebDriver एक वर्ग या एक इंटरफ़ेस है?

Webdriver एक ऐसा इंटरफ़ेस है जहाँ सभी ड्राइवर वर्ग जैसे ChromeDriver, FirefoxDriver एक ऑब्जेक्ट बनाते हैं और वेबड्राइवर इंटरफ़ेस के संदर्भ को संदर्भित करते हैं।

कौन सा तेज़ है, XPath, या CSS?

XPath की तुलना में CSS तेज है। 

सीएसएस XPath से अधिक तेज़ क्यों है?

प्रत्येक ब्राउज़र इंजन अलग है, और इसलिए लिखित XPath के माध्यम से पार्सिंग रणनीति और इंजन कार्यान्वयन अलग हैं। यही कारण है कि XPath को पार्स करना कई बार असंगत हो जाता है; उदाहरण के लिए, IE में XPATH को पार्स करने के लिए अपना स्वयं का इंजन कार्यान्वयन नहीं है; इसलिए सेलेनियम IE में XPATH को पार्स करने के लिए अपने स्वयं के मूल XPath इंजन को इंजेक्ट करता है। 

उन्नत विशेषाधिकार प्राप्त ब्राउज़र क्या है?

जब ब्राउज़र कुछ पूर्वनिर्धारित सेटिंग्स (विशेष विशेषाधिकार वाले मोड के साथ) जैसे कुछ प्रोफ़ाइल या प्रमाणपत्रों के साथ खोले जाते हैं, तो इसे उन्नत विशेषाधिकार प्राप्त ब्राउज़र सत्र कहा जाता है। 

हम कर सकते हैं सेलेनियम के साथ एक ब्राउज़र लॉन्च करें समान उद्देश्यों के लिए प्रोफाइलिंग या सेट प्रमाण पत्र के साथ।

हेडलेस ब्राउज़र सेलेनियम क्या है और हम हेडलेस ब्राउज़र परीक्षण कैसे करते हैं?

  एक बिना सिर वाला ब्राउज़र उस ब्राउज़र के लिए एक सिमुलेशन प्रोग्राम है, जहाँ हमारे पास UI नहीं है, लेकिन हम अभी भी एप्लिकेशन को अदृश्य मोड में परीक्षण के तहत चला सकते हैं 

 और पृष्ठभूमि में वांछित वेब ऑपरेशन करें।

 हम हेडलैस ब्राउजर ड्राइवरों जैसे एचटीएमएलआईटी ड्राइवर या फैंटम जेएस ड्राइवर का उपयोग हेडलेस ब्राउजर टेस्टिंग करने के लिए करते हैं।

सेलेनियम बनाम कठपुतली? 

सेलेनियम और कठपुतली के बीच कई अंतर हैं (जो सेलेनियम की तुलना में एक नया उपकरण है और Google Chrome DEV द्वारा विकसित किया गया है)

हम यहां विभिन्न पहलुओं में सेलेनियम वीएस प्यूपीटर के बीच तुलना पर चर्चा करेंगे: 

हार्डसेटर बनाम सॉफ्टएसेटर?

दोनों का दृष्टिकोण टेस्टनेग से है, और उनमें से प्रत्येक के पास अपने संबंधित पक्ष और विपक्ष हैं

 जब आप ऐसी परिस्थितियों में होते हैं, जहां आपको एक जोर की जरूरत होती है, तो यह स्पष्ट है कि, उस कदम के बिना, स्क्रिप्ट के शेष चरणों को निष्पादित करने का कोई मतलब नहीं है, तो आप हार्ड एसेर को वहां रख सकते हैं।

 सेलेनियम में विंडो का आकार कैसे सेट करें?

हम डायमेंशन क्लास का ऑब्जेक्ट बना सकते हैं और उस ऑब्जेक्ट को सेट करने के लिए पास कर सकते हैं () विधि: 

Dimension dimension = new Dimension(480,700);
driver.manage().window().setSize(dimension);

सेलेनियम के साथ काम करते समय आपके द्वारा उपयोग किए जाने वाले संस्करण नियंत्रण प्रणाली क्या है?

आप जो भी VCS उपयोग करते हैं, जैसे कि Github, SVN, इत्यादि का उल्लेख कर सकते हैं।

कैसे एक git रेपो क्लोन करने के लिए?

हम git रेपो का उपयोग करके क्लोन कर सकते हैं:

Git clone repo

Git repo कोड कैसे खींचें?

Git pull remoteRepoURL branchName

रेपो को पिन करने के लिए कोड को कैसे पुश करें?

Git push remoteURL branchName

रिमोट कैसे सेट करें? 

git remote add ProvideARemoteName remoetURL

उपलब्ध रिमोट को कैसे सत्यापित करें?

Git remote -v 

वर्तमान में आप किस दूरस्थ URL की जाँच करें? 

git config --get remote.origin.url

आप जेनकिंस के साथ अपने ढांचे को कैसे एकीकृत कर सकते हैं?

सेलेनियम ऑटोमेशन फ्रेमवर्क के हिस्से के रूप में, हम बिल्ड टूल्स (जैसे मावेन / ग्रैडल) का उपयोग कर रहे हैं, और हम जेनसीन्स जॉब बना सकते हैं और वीसीएस (यानी, जीथब, आदि) के साथ कॉन्फ़िगरेशन प्रदान करके मावेन / ग्रैडल को जोड़ सकते हैं।

सिकली के नुकसान क्या हैं?

सेलेनियम का उपयोग करके डेटाबेस परीक्षण कैसे करें?

हम नीचे मॉड्यूलर दृष्टिकोण में सेलेनियम का उपयोग करके डेटाबेस परीक्षण कर सकते हैं: 

उपरोक्त चरणों के लिए नीचे कोड स्निपेट दिया गया है: 

सेलेनियम डेटाबेस कनेक्शन JAVA JDBC के साथ सेटअप और DB स्टेटमेंट बनाता है: 

   static Connection connection = null;
   private static Statement statement;
   public static String DataBase_URL = "DB_URL";
   public static String DataBase_USER = "DB_UserName";
   public static String DataBase_PASSWORD = "DB_password";



   /* This method Creates the connection with Java JDBC and return it to the Test method to use along with statement 
   */
@BeforeTest
   public void setUp() throws Exception {
       try{

           String dbClass = "com.mysql.cj.jdbc.Driver";
           Class.forName(dbClass).newInstance();
           Connection con = DriverManager.getConnection(DataBase_URL, DataBase_USER, DataBase_PASSWORD);
           statement = con.createStatement();
       }
       catch (Exception e)
       {
           e.getCause().getMessage().toString();

       }


   }

SQL के साथ DB को क्वेरी करने के लिए कथन का उपयोग करें: 

@Test
public void test() {
   try{
       String queryData = "select * from TableName";

       ResultSet res = statement.executeQuery(queryData);
       while (res.next())
       {
           System.out.print(res.getString(1));
           System.out.print(" " + res.getString(2));
       }
   }
   catch(Exception e)
   {
       e.getMessage();
   }
}

डेटा कनेक्शन बंद करना: 

यह चरण बहुत महत्वपूर्ण है; अन्यथा, हम उपयोग के बाद उन्हें बंद किए बिना कई डेटाबेस कनेक्शन बना सकते हैं, जो कई मुद्दों का कारण हो सकता है। 

यहाँ उसी के लिए कोड स्निपेट दिया गया है: 

@AfterTest
public void tearDown() throws Exception {

   if (connection != null) {
       connection.close();
   }
}

सेलेनियम का उपयोग करके वेबइमेन्ट की पृष्ठभूमि का रंग और रंग कैसे सत्यापित करें? 

हमें नामक विधि का उपयोग करने की आवश्यकता है getCssValue ("रंग") रंग को पुनः प्राप्त करने के लिए एक वसीयतनामा और getCssValue ("पृष्ठभूमि-रंग") एक webelement की पृष्ठभूमि रंग खींचने के लिए।

यहाँ कोड स्निपेट है: 

String colour  = driver.findElement(By.xpath("XPATH_of_the_Element")).getCssValue("color");

String backgroundColour = driver.findElement(By.xpath("XPATH_of_the_Element")).getCssValue("background-color");

सेलेनियम वेबड्राइवर का उपयोग करके वेबइलमेंट के फ़ॉन्ट-आकार को कैसे सत्यापित किया जाए? 

हम getCssValue नामक विधि का उपयोग कर सकते हैं ("फ़ॉन्ट-आकार")

String fontSize  = driver.findElement(By.xpath("XPATH_of_the_Element")).getCssValue("font-size");

सेलेनियम वेबड्राइवर में एक webelement के फ़ॉन्ट प्रकार को कैसे सत्यापित करें? 

String fontSize = driver.findElement(By.xpath("XPATH_of_the_Element")).getCssValue("font-type");

सेलेनियम में टूलटिप टेक्स्ट कैसे प्राप्त करें?

WebElement का टूलटिप पाठ प्राप्त करना कुछ नहीं है, लेकिन नीचे दिए गए तरीके से Webelement का शीर्षक विशेषता प्राप्त करना है: 

public String getToolTipData(By locator){

   WebElement element=driver.findElement(locator);
   return element.getAttribute("title");
}

StaleElementException क्या है? 

बासी तत्व का अर्थ है कि जब कोई वेब तत्व DOM / WebPage के साथ संलग्न नहीं है, जो पहले मौजूद था। उस मामले में, सेलेनियम एक बासीलेमेंटसेप्शन फेंकता है।

यह कई कई कारणों से हो सकता है जैसे AJAX या जावास्क्रिप्ट कॉल के कारण जो राज्य को बदलता है

तत्व का यह DOM से अनुपलब्ध / अलग किया गया है।  

निष्कर्ष : इनके साथ हमने सेलेनियम फ्रेमवर्क साक्षात्कार प्रश्नों को कवर करने वाले महत्वपूर्ण सेलेनियम साक्षात्कार प्रश्नों के सेट को पूरा कर लिया है, गहराई से जानने के लिए यहां पढ़ें सेलेनियम की अवधारणाएं सेलेनियम की वास्तुकला को समझने के लिए।

एक टिप्पणी छोड़ दो