मुझे वेबड्राइवर पेजऑब्जेक्ट पैटर्न में उपयोग करने के लिए कठिन समय है। PageObjects पैटर्न और लोड करने योग्य कॉम्पोनेंट्स का उपयोग करने के अपने अनुभव और तरीके साझा करें।PageObjects पैटर्न में WebDriver/सेलेनियम 2 LoadComponents का उपयोग कैसे करें?
पृष्ठऑब्जेक्ट आमतौर पर एक घटक या कार्यक्षमता का टुकड़ा दर्शाता है, यह मेरे लिए पहले हुआ था कि मुझे इसे वास्तव में लोड() में कुछ चीजें करने के लिए उपयोग करना चाहिए और देखें कि यह क्या करता है लोड किया गया है()।
तब मुझे एहसास हुआ कि यह केवल "लोड हो रहा" वस्तुओं (संभवतः आरंभीकरण) के लिए उपयोग किया जाना चाहिए, क्योंकि यह एक वेबसाइट, अपने स्वयं के यूआरएल के साथ प्रत्येक वस्तु के चारों ओर ले जाने के मामले में है। और परीक्षण के लिए ऑब्जेक्ट तैयार है या नहीं, यह जांचने के लिए isLoaded() का उपयोग कर रहा है।
लेकिन यदि आपके पास परीक्षण करने के लिए एक जटिल जावास्क्रिप्ट ऑर्डर सबमिटकर्ता है, तो यह जेएस फ़ाइल अपलोडर का कंपाउंड है, जेएस फॉर्म जो 2 स्वतंत्र भागों पर आधारित है और तीन प्रकार के ऑर्डर हैं, आप कहीं भी नहीं जाते हैं (यूआरएल के संबंध में), केवल तत्वों की स्थिति बदल रही है।
get() विधि पर विचार करें। आप इंटरैक्टिव फॉर्म के साथ पेज में आते हैं। जब पृष्ठ पर फॉर्म मौजूद होता है तो यह लोड होता है। फिर आपके पास form1 और form2 ऑब्जेक्ट्स हैं ... उनके लोड() और isLoaded() विधि को कैसा दिखना चाहिए, वे तुरंत कार्रवाई के लिए तैयार हैं क्योंकि उन्हें किसी भी लोडिंग की आवश्यकता नहीं है, बस उनकी सेवाओं का परीक्षण करें।
यह एक गड़बड़ है, अगर isLoaded() विधि जाँच वस्तु भरी हुई, या वस्तु भरी हुई है कि क्या है कि क्या के लिए इस्तेमाल किया और सेटअप ठीक था है एक नहीं जानता है। लेकिन मुझे लगता है कि पूर्व तरीका सही है और इसे स्थापित करने की वैधता परीक्षण के भीतर सुनिश्चित की जानी चाहिए।
परिदृश्य:
Testing first part of html form - test that field client side validation works
Testing the second one that depends on the first one
Testing the following file uploader - upload, canceling, clearing, order, fileIDs
Testing the overall html form submission - ServerSide validation errors, results
प्रलेखन कहते हैं:
- LoadableComponent
-
सार्वजनिक तरीकों वें प्रतिनिधित्व करते हैं ई सेवाओं, स्पष्ट है कि पेज
मान्य, अपलोड प्रदान करता है, एकाधिक अपलोड करें, रद्द
पेज
केवल एक चीज है कि मेरे पास होता रहा है के आंतरिक बेनकाब करने के लिए नहीं की कोशिश करो यूनिटटेस्ट्स के लिए चालक उदाहरण छुपाया गया है और सभी फ़ील्ड नामों को रखने के लिए केवल पेज ऑब्जेक्ट्स का उपयोग करें, पेजऑब्जेक्ट्स में सीएसएस क्लास नाम + इनपुट डेटा के साथ पेजऑब्जेक्ट्स और सेवाओं/कार्यक्षमता के बूलियन परिणाम का दावा करें
तरीके अन्य पेज ऑब्जेक्ट्स
यह उपयोग करने के लिए सबसे कठिन बात है। एक इंटरेक्टिव फॉर्म के लिए 4 पेज ऑब्जेक्ट्स होने के कारण प्राकृतिक महसूस नहीं होता है। वे फॉर्म 1, फॉर्म 2 (फॉर्म 1), अपलोड (फॉर्म 2), सबमिट (अपलोड) की सलाह देते हैं, हालांकि मुझे पिछले ऑब्जेक्ट के संदर्भ में चेनिंग और हैंडिंग बहुत अराजकता मिलती है। परीक्षण विधि में उन सभी पर कॉलिंग() को बेहतर लगता है।लेकिन मुझे लगता है कि यह है कि यह पीछे विचार यह टेस्ट करने के लिए ड्राइवर उदाहरण का पर्दाफाश, लेकिन केवल PageObjects कि चालक उदाहरण का उपयोग कर रहे आंतरिक
एक ही कार्रवाई के लिए अलग-अलग परिणाम विभिन्न तरीकों के रूप में आधारित हैं मुझे लगता है उपयोग करने के लिए नहीं है कि इसका मतलब है कि यह पृष्ठ वस्तु पक्ष पर है कि कार्रवाई की वैधता के बारे नहीं करने का फैसला किया जाना चाहिए, लेकिन टेस्ट टीम
क्या आप जानते हैं यदि isLoaded पहले बुलाया जाएगा? अगर हम पहले से ही पेज पर हैं तो पेज को फिर से लोड करने के लिए किसी भी रिडंडेंसी से बचने के लिए। – CodyK