2016-04-14 96 views
0

'daki boşluktan bağımsız olarak XPath kullanarak metin içeren bir düğüm seçin. CasperJS kullanıyorum ve belirli bir float değerine sahip bir tablo öğesini tıklatmak istiyorum - ancak bazı boşluklar var ve bunun ne kadar olduğunu bilmiyorum var mı. ÖrneğinCasusJS

: Ben yaparak bu hedefleme elemanının çalıştı

<td class="narrow value ng-binding"><i class="fa" ng-class="{...}"></i>   1,45</td> 

:

this.click(x('//*[text()="1,45"]')); 

Ama olsun:

varolmayan seçici üzerindeki click olayını göndermez Can: XPath ifadesi: '// * [text() = "1,45"]'

Başlangıçta boşlukları nasıl görmezden geldiğine veya bunun neden çalışmadığına kimse işaret edebilir mi?

+2

kullanım 'normalize-space (text())' – splash58

+0

aynı şey - varolmayan seçici: xpath seçici: '// * [normalleştirmek-uzay (metin() = "1,45")]' –

cevap

1

Kullanım normalize-space() 'görmezden' olarak dizenin başında ve sonunda boşlukların:

//*[normalize-space(text())="1,45"] 

veya hedef metin düğümü ebeveyninin içinde ilk çocuk metin düğümü olmayabilir durumda aşağıdaki formu kullanarak :

//*[text()[normalize-space(.)="1,45"]] 

MDN Gönderen:

normalize-space işlevi, bir dizeden önde ve arkadaki beyaz boşluğu keser, boşluk karakterlerinin dizilerini tek bir boşlukla değiştirir ve sonuçta oluşan dizeyi döndürür.

+1

ikinci çözüm doğru olanıydı (ana öğedeki ilk alt metin düğümü değil). Çok teşekkürler –