HTML ทำให้ช่องว่างภายในองค์ประกอบเป็นปกติโดยไม่สนใจช่องว่างนำหน้า / ต่อท้ายและแปลงช่องว่างแท็บและบรรทัดใหม่เป็นช่องว่างเดียว เมื่อซีลีเนียมอ่านข้อความนอกหน้ามันจะพยายามทำซ้ำพฤติกรรมนี้ดังนั้นคุณสามารถเพิกเฉยต่อแท็บและบรรทัดใหม่ทั้งหมดใน HTML ของคุณและทำการยืนยันตามลักษณะของข้อความในเบราว์เซอร์เมื่อแสดงผล เราทำสิ่งนี้โดยแทนที่ช่องว่างที่มองไม่เห็นทั้งหมด (รวมถึงช่องว่างที่ไม่ทำลาย " ") ด้วยช่องว่างเดียว ทุกบรรทัดใหม่ที่มองเห็น ( <br>, <p>และ<pre>การจัดรูปแบบสายใหม่) ควรจะเก็บรักษาไว้
เราใช้ตรรกะการปรับมาตรฐานเดียวกันกับข้อความของตารางกรณีทดสอบ HTML Selenese สิ่งนี้มีข้อดีหลายประการ ขั้นแรกคุณไม่จำเป็นต้องดูที่ซอร์ส HTML ของหน้าเพื่อดูว่าการยืนยันของคุณควรเป็นอย่างไร " " สัญลักษณ์ที่มองไม่เห็นให้กับผู้ใช้และเพื่อให้คุณไม่ควรจะต้องกังวลเกี่ยวกับพวกเขาเมื่อเขียนทดสอบ Selenese (คุณไม่จำเป็นต้องใส่ เครื่องหมาย "" ในกรณีทดสอบของคุณเพื่อ assertText ในฟิลด์ที่มี " ") คุณยังสามารถใส่บรรทัดใหม่และช่องว่างเพิ่มเติมใน<td>แท็กSelenese ของคุณ
เนื่องจากเราใช้ตรรกะการปรับมาตรฐานเดียวกันกับกรณีทดสอบเช่นเดียวกับที่เราทำกับข้อความเราจึงมั่นใจได้ว่าการยืนยันและข้อความที่แยกออกมาจะตรงกันทุกประการ
สิ่งนี้สร้างปัญหาเล็กน้อยในโอกาสที่หายากเหล่านั้นเมื่อคุณต้องการ / จำเป็นต้องแทรกช่องว่างเพิ่มเติมในกรณีทดสอบของคุณ ตัวอย่างเช่นคุณอาจต้องพิมพ์ข้อความในช่องเช่นนี้: " foo " แต่ถ้าคุณเขียน<td>foo </td>ในกรณีทดสอบ Selenese ของคุณเราจะแทนที่ช่องว่างพิเศษของคุณด้วยช่องว่างเพียงช่องเดียว
ปัญหานี้มีวิธีแก้ปัญหาง่ายๆ เราได้กำหนดตัวแปรใน Selenese
${space}ซึ่งมีค่าเป็นช่องว่างเดียว คุณสามารถใช้เพื่อแทรกช่องว่างที่จะไม่ถูกตัดโดยอัตโนมัติเช่นนี้:${space}
<td>foo${space}${space}${space}</td>เราได้รวมตัวแปรไว้
${nbsp}ด้วยซึ่งคุณสามารถใช้เพื่อแทรกช่องว่างที่ไม่ทำลาย
โปรดทราบว่า XPaths ไม่ได้ทำให้ช่องว่างเป็นปกติเหมือนที่เราทำ หากคุณต้องการที่จะเขียน XPath เหมือน
//div[text()="hello world"]แต่ HTML ของการเชื่อมโยงที่เป็นจริง " hello world" คุณจะต้องใส่จริง " " ในกรณีทดสอบ Selenese
//div[text()="hello${nbsp}world"]ของคุณจะได้รับมันให้ตรงเช่นนี้