Kullanarak metin içeren arama için XPATH | Netgez.com
SORU
29 EKİM 2008, ÇARŞAMBA


Kullanarak metin içeren arama için XPATH

XPather Browser HTML sayfası üzerinde XPATH ifadelerimi kontrol etmek için kullanıyorum.

Son hedefim benim kullanıcı arayüzleri test etmek için Selenyum bu ifadeler kullanmaktır.

İçeriği şuna benzer bir HTML dosyası var:

<tr>
  <td>abc</td>
  <td> </td>
</tr>

Bir metin dizesini içeren bir düğüm seçmek istiyorum " ".

"Abc" sorun yok. normal bir dize ile Bir XPATH //td[text()="abc"] benzer kullanıyorum.

//td[text()=" "] gibi bir XPATH ile çalıştığımda hiçbir ÅŸey döndürür. Orada özel bir kuralı ile ilgili metinler "&" ?

CEVAP
29 EKİM 2008, ÇARŞAMBA


OpenQA, Selenyum arkasında adamlar, zaten bu sorunu ele var gibi görünüyor. Explicitely boşluklar maç için bazı değişkenleri belirlemiş. Benim durumumda, bir XPATH //td[text()="${nbsp}"] benzer kullanmam lazım.

Burada OpenQA bu konuda (here): metin tekrarladım

HTML otomatik olarak normalleÅŸtirir boÅŸluk elemanları, görmezden içinde lider/sondaki boÅŸlukları ve dönüştürme içine ekstra boÅŸluk, sekme ve yeni satır bir tek mekan. Selenyum metin okuduÄŸunda Bu sayfa, dener bu davranış, yinelenen, tüm sekmeleri görmezden ve yeni satır iddialar göre yapın, HTML ve metin ne tarayıcıda ne zaman görünüyor iÅŸlenmiÅŸ. Bütün deÄŸiÅŸtirerek yapıyoruz görünür olmayan (boÅŸluk dahil non-breaking " ") ile bir mekan tek mekan. Tüm görünür satır baÅŸları (<br>, <p> <pre> biçimlendirilmiÅŸ yeni satır) muhafaza edilmelidir.

Aynı normalleÅŸtirme mantık kullanıyoruz HTML Selenese metni test çalışması tablo. Bu bir numarası vardır avantajları. İlk, gerek yok sayfanın HTML kaynak için bak onayları gerekir. ; "10* *" sembolleri görünmez olmamalı yani son kullanıcıya ve yazarken onlar hakkında endiÅŸelenmenize gerek Selenese testleri. (YerleÅŸtirmeye gerek yok " " test durumda iÅŸaretleri bulunduÄŸu bir alanda assertText için " ".) Ayrıca ekstra koymak olabilir senin Selenese içinde yeni satır ve boÅŸluk Aynı kullandığımızdan <td> etiketleri; normalleÅŸtirme test çalışması mantık metin üzerinde yaptığımız, emin olun elimizden geldiÄŸince bu iddialar ve çıkarılan metin maç tam olarak.

Bu sorun üzerinde biraz oluşturur o zaman, nadir de olsa gerçekten /Ekle ekstra boşluk etmek ister misin test durumda. Örneğin, bir alan gibi bir metin yazmanız gerekebilir bu: "foo ". Ama eğer sadece senin <td>foo </td> yaz Selenese test çalışması, değiştiririz sadece bir boşluk fazladan boşluk.

Bu sorunun basit bir çözümü vardır. Selenese,bir değişken tanımladık. ${space} kimin değer bir tek. boşluk. ${space} için kullanabilirsiniz ekleme olmayacak bir mekan otomatik olarak kesilmiş. <td>foo${space}${space}${space}</td>. Ayrıca bir değişken ekledik Eklemek için kullanabileceğiniz ${nbsp}, bölünemez boşluk.

XPaths unutmayındeÄŸilnormale bizim gibi boÅŸluk. EÄŸer ihtiyacınız varsa gibi bir XPath yazmak //div[text()="hello world"] ama Link HTML gerçekten "hello world", gerekir için Ekle bir gerçek " " içine Selenese bu maçı almak için test çalışması, bunun gibi: //div[text()="hello${nbsp}world"].

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • JayzTwoCents

    JayzTwoCents

    26 AÄžUSTOS 2012
  • mliskIT

    mliskIT

    29 Mart 2012
  • Rozetked | Обзоры

    Rozetked | Ð

    5 AÄžUSTOS 2011