2012-06-01 13 views
12

मैं ककड़ी के साथ वेब अनुप्रयोग व्यवहार का परीक्षण कर रहा हूं (हूड के नीचे सेलेनियम और वाटिर का उपयोग कर)। मेरे वेब ऐप में एचटीएमएल 5 पेज हैं और नए "आवश्यक" विशेषता का उपयोग करते हैं। यदि मेरे पास एक आवश्यक फ़ील्ड के साथ डेटा एंट्री फॉर्म है, और मैं उस फॉर्म को रिक्त फ़ील्ड के साथ जमा करता हूं, तो मैं यह सत्यापित करना चाहता हूं कि वेब ऐप सही ढंग से त्रुटि स्थिति के साथ प्रतिक्रिया देता है।मैं ककड़ी के साथ एचटीएमएल 5 पृष्ठों में त्रुटि की स्थिति का परीक्षण कैसे करूं?

दुर्भाग्यवश, एक HTML5 वेब ब्राउज़र का उपयोग करते समय परीक्षण करते समय, असफल फ़ील्ड सत्यापन पर पॉप-अप त्रुटि संदेश वेब ड्राइवर के माध्यम से ककड़ी के लिए सुलभ प्रतीत नहीं होता है। किसी भी मामले में, फॉर्म सबमिट नहीं किया गया है और पृष्ठ डेटा एंट्री फॉर्म पर बना हुआ है।

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

दूसरे मामले में, मैं आसानी से त्रुटि संदेश के अस्तित्व के लिए परीक्षण कर सकता हूं क्योंकि यह पृष्ठ में दिए गए HTML का हिस्सा है। मेरी समस्या यह है कि मैं नहीं देख सकता कि एक एकल परीक्षण परिदृश्य कैसे लिखना है जो दोनों हेडलेस और एचटीएमएल 5 ब्राउज़र स्थितियों के लिए त्रुटि स्थिति को मान्य करेगा।

यह हो सकता है कि सेलेनियम और वाटिर वेब ड्राइवरों की वर्तमान स्थिति के साथ यह असंभव है। लेकिन अगर किसी को पता है कि मैं एचटीएमएल 5 "आवश्यक" त्रुटि पॉपअप संदेश कैसे सत्यापित कर सकता हूं, तो यह एक बड़ी मदद होगी।

संपादित 2012-06-02: यहाँ एचटीएमएल 5 ब्राउज़र चेतावनियों का एक नमूना है और इस तरह के साथ एक नमूना पृष्ठ है: http://railsdotnext.com/stackoverflow/required.html

एक आवश्यक पाठ आंतरिक संकेत पाठ दिखा एक पाठ बॉक्स नहीं है और का चयन करें, और एक regex इनपुट सत्यापन के साथ पाठ बॉक्स। इस मुद्दे को भ्रमित करने के लिए पृष्ठ में कोई सीएसएस या जावास्क्रिप्ट नहीं है, यह सिर्फ वेनिला HTML5 है। पूर्ण ब्रेकडाउन के लिए w3schools page about HTML5 field attributes देखें। फॉर्म एक साधारण सीजीआई स्क्रिप्ट को प्रस्तुत करता है जो फ़ॉर्म इनपुट को स्वीकार करता है, यह मानता है कि फॉर्म सफल होता है। सबमिट विफलता नमूना फॉर्म पेज पर रहेगी।

+0

क्या कोई ऑनलाइन उदाहरण है जो 'आवश्यक' विशेषता का उपयोग करता है जिसे हम देख सकते हैं? – Cheezy

+0

मैंने एक छोटा सा बनाया है। यह संपूर्ण नहीं है, लेकिन इसके साथ खेलने के लिए पर्याप्त प्रदान करना चाहिए। उपरोक्त मूल पोस्ट में संपादित करें देखें। –

+0

जितना अधिक मैं इसके बारे में सोचता हूं, एचटीएमएल 5 त्रुटि का परीक्षण करना कोई मुद्दा नहीं है - यह जांच करेगा कि ब्राउज़र डिज़ाइन के रूप में काम करता है या नहीं। एचटीएमएल 5 रूपों के साथ एचटीएमएल लिखा गया है जब समस्या सर्वर सत्यापन की जांच में है। मैं परीक्षण पर्यावरण में अलग-अलग HTML कोड नहीं चाहता हूं। सेलेनियम और/या वॉटर: वेबड्राइवर एचटीएमएल 5 प्रतिक्रियाओं को सक्षम/अक्षम कर सकता है जैसे वे जावास्क्रिप्ट कर सकते हैं। –

उत्तर

0

मैंने पहले HTML5 required विशेषता के साथ काम नहीं किया है। लेकिन इसकी प्रकृति से, required विशेषता केवल ब्राउजर को अलर्ट करती है कि उस फॉर्म फ़ील्ड को भरना होगा (यानी डोम नहीं बदलता है)।

ऐसा लगता है कि यह उचित होगा कि required विशेषता उपयुक्त फॉर्म फ़ील्ड के HTML में मौजूद है। वह परीक्षण दोनों एचटीएमएल 5 ब्राउज़र और गैर-एचटीएमएल 5 ब्राउज़र के लिए पास होना चाहिए।

ऐसा कुछ भी कहने की कोशिश कर रहा है जैसे आप ब्राउज़र की कार्यक्षमता का परीक्षण करेंगे।

+0

एकमात्र चीज जो मैं कर सकता हूं जब मुझे तत्व को प्रमाणित करना होता है: पी $ browser.element (: css => " इनपुट:। अमान्य ") मौजूद है? पी $ browser.element (: css => "इनपुट: आवश्यक") मौजूद है? यदि किसी के पास कुछ बेहतर है या हम पॉपअप एचटीएमएल 5 – macwadu

0

यह सत्यापित करने के अलावा कि HTML बनाया गया ब्राउज़र सत्यापन को सक्षम करने के लिए सही है, मुझे यकीन नहीं है कि आप कितना कर सकते हैं, ब्राउज़र का परीक्षण करने की राशि नहीं है, न कि आपका कोड।

वॉटर या वॉटर-वेबड्राइवर का उपयोग करके आप इसका उपयोग कर सकते हैं। यह सत्यापित करने के लिए कि इनपुट में उचित प्रकार (उदा। ईमेल) सेट है, जो ब्राउज़र सत्यापन को नियंत्रित करने वाली एक चीज है। दूसरा आवश्यक विशेषता की उपस्थिति है जो संभावित रूप से थोड़ा चालक है .attribute_value ("आवश्यक") काम कर सकता है, लेकिन आम तौर पर यह एक विशेषता का मान देता है, इसलिए यह सुनिश्चित न करें कि यह विधि बुलियन विशेषता को कैसे प्रतिसाद देगी। अन्य विकल्प देख सकते हैं .attribute_list और

वॉटर के लिए एक अच्छा कारण जोड़ने के लिए यहां एक अच्छा कारण भी दिखता है? तत्वों को इनपुट करने की विधि जो आपको आसानी से जांचने की अनुमति देगी कि क्या विशेषता सेट की गई है।तो मैंने उस सुविधा के लिए पूछा https://github.com/watir/watir-webdriver/issues/189

+0

का टेक्स्ट कैसे प्राप्त कर सकते हैं [वेबड्राइवर स्पेक] (http://www.w3.org/TR/webdriver/#reading-attributes-and-properties) बूलियन के अनुसार विशेषता 'सत्य' लौटाती है यदि यह मान सही है और 'शून्य' यदि यह मान गलत है –

संबंधित मुद्दे