HTML स्वचालित रूप से तत्वों के भीतर व्हाट्सएप को सामान्य करता है, अग्रणी / अनुगामी स्थानों को अनदेखा करता है और अतिरिक्त रिक्त स्थान, टैब और न्यूलाइन्स को एक ही स्थान में परिवर्तित करता है। जब सेलेनियम पृष्ठ से बाहर पाठ को पढ़ता है, तो यह इस व्यवहार को डुप्लिकेट करने का प्रयास करता है, इसलिए आप अपने HTML में सभी टैब और नईलाइन्स को अनदेखा कर सकते हैं और यह दावा कर सकते हैं कि रेंडर करते समय ब्राउज़र में पाठ कैसा दिखता है। हम सभी गैर-दृश्यमान व्हाट्सएप (गैर-ब्रेकिंग स्पेस सहित "
") को एक ही स्थान से बदलकर करते हैं । दिखाई देने वाले सभी नई-पंक्तियों ( <br>
, <p>
, और <pre>
नई लाइनों प्रारूपित) संरक्षित किया जाना चाहिए।
हम HTML सेलेनी टेस्ट केस टेबल के पाठ पर समान सामान्यीकरण तर्क का उपयोग करते हैं। इसके कई फायदे हैं। सबसे पहले, आपको यह जानने के लिए पेज का HTML स्रोत देखने की जरूरत नहीं है कि आपके दावे क्या होने चाहिए; "
" प्रतीकों अंत उपयोगकर्ता के लिए अदृश्य हैं, और इसलिए आप उनके बारे में चिंता करने की ज़रूरत नहीं होना चाहिए जब Selenese परीक्षण लेखन। (आपको
अपने परीक्षण मामले में " " मार्करों को डालने की आवश्यकता नहीं है, जिसमें "
" शामिल हैं ) पर एक फ़ील्ड पर जोर देना है ।) आप अपने सेलेनीज़ <td>
टैग्स में अतिरिक्त न्यूलाइन्स और रिक्त स्थान डाल सकते हैं
; चूंकि हम परीक्षण मामले पर उसी सामान्यीकरण तर्क का उपयोग करते हैं जैसा कि हम पाठ पर करते हैं, हम यह सुनिश्चित कर सकते हैं कि दावे और निकाले गए पाठ बिल्कुल मेल खाएंगे।
यह उन दुर्लभ अवसरों पर थोड़ी परेशानी पैदा करता है जब आप वास्तव में अपने परीक्षण के मामले में अतिरिक्त व्हाट्सएप सम्मिलित करना चाहते हैं। उदाहरण के लिए, आपको इस तरह के क्षेत्र में पाठ लिखने की आवश्यकता हो सकती है: " foo
"। लेकिन यदि आप बस <td>foo </td>
अपने सेलेनीस टेस्ट मामले में लिखते हैं , तो हम आपके अतिरिक्त स्थानों को केवल एक स्थान के साथ बदल देंगे।
इस समस्या का एक सरल समाधान है। हमने सेलेनीज़ में एक चर को परिभाषित किया है
${space}
, जिसका मान एक एकल स्थान है। आप ${space}
ऐसे स्थान को सम्मिलित करने के लिए उपयोग कर सकते हैं जो स्वचालित रूप से छंटनी नहीं करेगा, जैसे
<td>foo${space}${space}${space}</td>
:। हमने एक चर भी शामिल किया है
${nbsp}
, जिसका उपयोग आप गैर-ब्रेकिंग स्पेस को सम्मिलित करने के लिए कर सकते हैं।
ध्यान दें कि XPaths व्हाट्सएप को सामान्य नहीं करते हैं जिस तरह से हम करते हैं। यदि आपको XPath लिखने की आवश्यकता है,
//div[text()="hello world"]
लेकिन लिंक का HTML वास्तव में " hello world
" है, तो आपको
इस तरह से मिलान करने के लिए इसे पाने के लिए अपने Selenese परीक्षण मामले में एक वास्तविक " "
सम्मिलित करना होगा //div[text()="hello${nbsp}world"]
:।