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"]
ของคุณจะได้รับมันให้ตรงเช่นนี้