2011-01-06 14 views
19
WebElement body = browser.findElement(By.xpath("//body")); 

body.findElement(By.xpath("")); // I want to get all child elements 
           // inside body, but nothing deeper. 

Örnek belge alın.tüm acil çocuk ve derin bir şey

<html> 
    <body> 
    <div> 
    </div> 
    <span> 
     <table> 
     </table> 
    </span> 
    </body> 
</html> 

Beklenen sonuç div ve span olduğunu. Belgeler üzerinde hiçbir kontrole sahip değilim ve büyük ölçüde değişiyorlar.

cevap

23

("*") bağlamsal düğümün tüm alt öğelerini verir. Yani kullanın:

body.findElement(By.xpath("*")); 
+1

Tamam. Yorumlar siliniyor ... –

6
/html/body/* 

Yalnızca body öğesinin acil elemanlarını seçer.

tüm bu seçilen düğümlerin kopyalamak, sen de onların içerik kopyalamak unutmayın etmeyin. Yani, copy-of yaparsanız, table ortaya çıkan belgeye de üretilecektir.

Ayrıca, çok fazla benzer soru sormak, en azından XPath temellerini okumak için öneriyoruz.

+0

1 Doğru cevap. Yazdınız: * nodeset çocuk öğelerini de içerecektir *. Bu yanlış ya da düşüncelerinizi açık değil. Sanırım onu ​​kaybetmeden kaldırabilirsin. –

+0

@Alejandro, evet, bu iyi bir formülasyon değil, bunu düzgün bir şekilde söyleyemez. Bunu nasıl söylersin? . * Tüm bu seçilen düğümlerin kopyalamak, sen de kendi kermeslerine içerik kopyalayan hatırlıyor musunuz * – Flack

+1

Belki şöyle bir cümle istedi. Teşekkürler. Cevabı sözcüklerinizle düzenleyin. –

4

İşte bir elemanın direkt çocukları almak için başka bir yolu: mayıs birisi yardım

element.findElement(By.xpath("./*")); 
İlgili konular