HTML, öğelerdeki beyaz boşluğu otomatik olarak normalleştirir, baştaki / sondaki boşlukları yok sayar ve fazladan boşlukları, sekmeleri ve satırsonlarını tek bir alana dönüştürür. Selenium sayfadan metin okuduğunda, bu davranışı kopyalamaya çalışır, böylece HTML'nizdeki tüm sekmeleri ve yeni satırları yok sayabilir ve metnin işlendiğinde tarayıcıda nasıl göründüğüne bağlı olarak iddialarda bulunabilirsiniz. Bunu, görünmeyen tüm beyaz boşlukları (bölünemez boşluk dahil) değiştirerek yapıyoruz.
" dahil) tek bir . Görünen tüm yeni satırlar ( <br>
, <p>
ve <pre>
biçimlendirilmiş yeni satırlar) korunmalıdır.
HTML Selenese test durumu tablolarının metninde aynı normalleştirme mantığını kullanıyoruz. Bunun birçok avantajı vardır. İlk olarak, iddialarınızın ne olması gerektiğini anlamak için sayfanın HTML kaynağına bakmanıza gerek yoktur; "
" sembolleri son kullanıcı tarafından görülemez ve bu nedenle Selenese testlerini yazarken bunlar için endişelenmenize gerek yok. ("
" İçeren bir alanda assText'i test etmek için " " işaretçileri koymanıza gerek yoktur
.) Ayrıca Selenese <td>
etiketlerinize fazladan satırlar ve boşluklar da koyabilirsiniz
; Metinde yaptığımızla aynı normalleştirme mantığını test senaryosunda kullandığımız için, iddiaların ve çıkarılan metnin tam olarak eşleşmesini sağlayabiliriz.
Bu, test durumunuza fazladan boşluk eklemeyi gerçekten istediğiniz / eklemeniz gereken nadir durumlarda biraz sorun yaratır. Örneğin, şuna benzer bir alana metin yazmanız gerekebilir: " foo
". Ama basitçe yazarsan<td>foo </td>
, Selenese test durumunuza yazarsanız, fazladan boşluklarınızı tek bir boşlukla değiştiririz.
Bu sorunun basit bir çözümü vardır. Selenese'de ${space}
değeri tek boşluk olan bir değişken tanımladık
. Sen kullanabilirsiniz ${space}
otomatik olarak bu gibi kesilmiş olmayacaktır boşluk girmek için:
<td>foo${space}${space}${space}</td>
. Ayrıca bir değişken ekledik
${nbsp}
Bölünemez boşluk eklemek için kullanabileceğiniz .
XPath'lerin beyaz boşluğu bizim yaptığımız gibi normalleştirmediğini unutmayın . Eğer böyle bir XPath yazmak gerekirse
//div[text()="hello world"]
ama bağlantının HTML "gerçekten hello world
", gerçek eklemek gerekir "
böyle, bu maç için almak için Selenese test durumu içine":
//div[text()="hello${nbsp}world"]
.