hard sleep हालत की परवाह किए बिना एक तय अवधि रुकता है, जो धीमा भी है और भरोसे लायक भी नहीं। implicit wait हर element खोजने पर लागू होने वाला एक global polling timeout तय करता है। explicit wait किसी खास element पर किसी खास condition के लिए poll करता है, जैसे clickable या visible। explicit wait ही सही डिफॉल्ट है, और implicit को explicit के साथ मिलाने से timeout अंदाजे से बाहर हो जाते हैं।
इंटरव्यूअर यह क्यों पूछते हैं
इंतजार की रणनीति flaky UI टेस्ट की सबसे बड़ी अकेली वजह है, इसलिए यह व्यावहारिक दक्षता की जांच है। इंटरव्यूअर फर्क साफ साफ बताया जाना चाहते हैं और तय sleep का दो टूक इनकार। यह जानना कि implicit और explicit मिलाने से timeout आपस में जुड़कर अजीब बर्ताव करते हैं, और यह कि नए framework actionability पर अपने आप इंतजार करते हैं, आपको पुराने tutorials से सीखे हुए की जगह मौजूदा दिखाता है।
अपना जवाब कैसे स्ट्रक्चर करें
- तीनों को सटीक और संक्षेप में परिभाषित करें।
- समझाएं कि तय sleep धीमा भी है और भरोसे लायक भी नहीं।
- explicit wait को डिफॉल्ट बताएं और एक condition का उदाहरण दें।
- implicit और explicit मिलाने के खतरे से आगाह करें।
- बताएं कि नए framework actionability पर अपने आप इंतजार करते हैं।
उदाहरण जवाब
hard sleep बस तय सेकंड के लिए रोक देता है। यह दोनों तरफ से सबसे खराब विकल्प है: बहुत छोटा हो तो flaky, बहुत लंबा हो तो आपने वह वक्त हर run में हमेशा के लिए जोड़ दिया। मैं टेस्ट में किसी भी sleep को defect मानता हूं जब तक उसके साथ यह समझाती हुई एक comment न हो कि क्यों। implicit wait एक global setting है जो driver से कहती है कि element न मिलने पर poll करता रहे। यह सुविधाजनक है पर भोथरा, क्योंकि यह हर चीज पर लागू होता है और सच में गैरमौजूद element को फेल होने में पूरा timeout लगवा देता है, जिससे आपके सारे negative case धीमे हो जाते हैं। explicit wait एक element और एक condition पर निशाना लगाता है, यानी इंतजार करो जब तक यह button clickable न हो, या जब तक यह spinner गायब न हो जाए। यही मेरा डिफॉल्ट है, क्योंकि यह मंशा बताता है और एक अर्थपूर्ण message के साथ जल्दी फेल होता है। फंसाने वाली बात है एक ही suite में implicit और explicit मिला देना, जो Selenium में ऐसे timeout पैदा कर सकता है जो न इधर के होते हैं न उधर के और जिन पर सोचना तकलीफदेह होता है, इसलिए मैं implicit wait शून्य कर देता हूं और सब कुछ explicit करता हूं। Playwright ने actionability पर अपने आप इंतजार करके इसका ज्यादातर हिस्सा खत्म कर दिया, और यही बड़ी वजह है कि अब मैं उसे पसंद करता हूं।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- किसी table के refresh होने का assert करने से पहले आप किस condition का इंतजार करेंगे?
- ऐसा element कैसे संभालते हैं जो दिखता है और फिर page के जमने पर जगह बदल लेता है?
- ऐसे page के बारे में क्या करेंगे जो पृष्ठभूमि की requests कभी बंद ही नहीं करता?
QA इंजीनियर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें