2009-12-12 13 views
5

का उपयोग करते समय डोम हेरफेर को मान्य करें मैं अपने आवेदन का परीक्षण करने के लिए सेलेनियम का उपयोग कर रहा हूं। एक अच्छा परीक्षण यह होगा कि प्रत्येक डोम हेरफेर के बाद मैं डोम को मान्य करूंगा। क्या ऐसा करने का कोई अच्छा तरीका है?सेलेनियम

स्पष्ट तरीके हैं:

  • उपयोग कुछ अंतर्निहित सेलेनियम कार्य करते हैं। क्या कोई है?
  • मैनिपुलेशन के बाद डोम का HTML प्राप्त करें और स्थानीय सत्यापनकर्ता का उपयोग करें। हालांकि, मैं नहीं देख सकता कि सेलेनियम से वर्तमान डीओएम के लिए एचटीएमएल कैसे प्राप्त करें।
  • मैं किसी भी तरह से जावास्क्रिप्ट से जा सकता हूं, या तो सेलेनियम के दौरान या जेएस फ़ाइल जोड़कर। लेकिन मुझे यकीन नहीं है कि इस बारे में कैसे जाना है। विचार?

उत्तर

4

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

परियोजना http://code.google.com/p/fighting-layout-bugs/ पर है और पहली बार ज़्यूरिख में जीटीएसी 200 9 में दिखाया गया था। कोड डीओएम की वैधता की जांच के लिए डब्ल्यू 3 सी और jQuery का उपयोग करता है। टॉक और उस कोड के वीडियो पर एक नज़र डालें।

संपादित करें:

धन्यवाद sampablokuper को W3C सत्यापन है code.google.com/p/w3c-markup-validation-filter/

+0

यह एक बेहद शानदार लग रही परियोजना है, लेकिन वैधता के लिए HTML का परीक्षण करने के लिए लेआउट परीक्षण काफी अलग है। – sampablokuper

+0

फ्रेम काम w3c validaion करता है। ExAmple देखने के लिए साइट पर वीडियो देखें। यह पृष्ठ पर एक बॉक्स बनाता है जो यह मान्य करता है कि यह कैसे मान्य करता है, इसके आधार पर आप लाल या हरे रंग के होते हैं ताकि आप इसके रंग – AutomatedTester

+0

को सही तरीके से देख सकें, vid इसका उल्लेख करता है, लेकिन ऐसा करने के लिए कोड वास्तव में माइकल टैम की अन्य परियोजना में है: http://code.google।कॉम/पी/डब्ल्यू 3 सी-मार्कअप-सत्यापन-फ़िल्टर /। मैं अभी तक अपने सिस्टम पर चल रहा कोड प्राप्त करने में कामयाब नहीं रहा हूं (मैं जावा को अक्सर स्पर्श नहीं करता, इसलिए मैं इसके साथ थोड़ा धीमा हूं) लेकिन मैं ऐसा करने की उम्मीद कर रहा हूं। चीयर्स :) – sampablokuper

1

पर मैं एक ही मोर्चे पर विचार किया गया है। अब तक मेरी प्रगति यहाँ है।

जावास्क्रिप्ट विशेषता document.documentElement.outerHTML कुछ ब्राउज़रों में एक्सेस किया जा सकता है, उदा। सफारी और क्रोम, लेकिन फ़ायरफ़ॉक्स में नहीं। यह आपको डोम मैनिपुलेशन का परिणाम दिखाएगा लेकिन आपको पृष्ठ के लिए पूर्ण स्रोत कोड नहीं देगा। यदि आप कुछ जावास्क्रिप्ट इंजेक्ट करते हैं जो आपके DOM मैनिपुलेशन के बाद document.documentElement.outerHTML के मान को संग्रहीत करेगा, तो आपको उस मान को W3C Validator के "प्रत्यक्ष इनपुट" टेक्स्टरेरा में टाइप करने और इसे सबमिट करने में सेलेनियम प्राप्त करने में सक्षम होना चाहिए । इसे वैध (एक्स) HTML दस्तावेज़ बनाने के लिए आपको उचित रूप से मूल्य को पूर्ववत और जोड़ना होगा। मैंने सेलेनियम से अभी तक इन सभी चरणों को काम करने में कामयाब नहीं रहा है।

prepending "स्रोत-देखें:" यूआरएल (के रूप में किया here) करने के लिए कुछ ब्राउज़रों में, उदाहरण के लिए काम करता है फ़ायरफ़ॉक्स और क्रोम, लेकिन सफारी में नहीं। यह आपको डोम मैनिप्लेशंस का नतीजा नहीं दिखाएगा। मुझे "दृश्य-स्रोत:" से शुरू होने वाले पते को खोलने के लिए सेलेनियम आईडीई नहीं मिल रहा है; यह हमेशा एक फॉरवर्ड स्लैश तैयार करता है, और मुझे यकीन नहीं है कि इससे कैसे बचें।

मुझे यह जानने में दिलचस्पी होगी कि लोगों ने किस अन्य दृष्टिकोण की कोशिश की है, और क्या उन्हें कोई सफलता मिली है!

0

प्रयास करें

String html = selenium.getEval("window.document.body.innerHTML"); 

यह आप पूरे वर्तमान डोम HTML कि जावास्क्रिप्ट से छेड़छाड़ की गई थी दे देंगे।