2010-02-02 20 views
6

içeriyor XPath öğesi Burada ilk gönderiim var ve birçok harika yanıt gördüğümden bunu denemeyi düşündüğümden beri.Bir öznitelik içeren ve üst öğesinin üst öğesi başka bir özellik

Bir HTML belgesinde belirli bir öğe edinmek için XPath kullanmayı deniyorum. İşte Google web sayfasının kapalı dayalı bir örnektir:

<html> 
    <head> 
    <title>XPath Test</title> 
    </head> 
    <body> 
    <form name='f'> 
     <table> 
     <tbody> 
      <tr> 
      <td> 
       <input name='q' type="text" /> 
      </td> 
      </tr> 
     </tbody> 
     </table> 
    </form> 
    </body> 
</html> 

(yardım isteme amacıyla basitleştirilmiş) Yukarıdaki örneğe Adını giriş elemanını bulmak mümkün olmak istiyorum = 'q' ve kimin atadığı 5 ebeveyn olan ata = 'f'. Örneğin, bunu S.W.A.T'nin sözdiziminde yapsaydım, örneğin. ki http://ulti-swat.wikispaces.com yer alan bir açık kaynak web otomasyon test kütüphanesi gibi olacaktır sözdizimi aşağıdaki gibidir:

| AssertElementExists | İfade | adı = q; parentElement.parentElement.parentElement.parentElement.parentElement.name = f | giriş |

Sadece XPath'i öğrenmeye başladım ve yüklemlerin eksenlerle nasıl birleştirileceğini anlamaya çalışıyorum. XPath ile böyle ifadeler yapmak mümkün mü? Eğer birileri bilgili olabilirse lütfen yardım edin? Yapabilirsin

cevap

13

yapmalı:

//input[@name='q' and ancestor-or-self::*[@name='f']] 
// -- input element whose name='q' and who has an ancestor with the name='f' 

veya

//input[@name='q' and ../../../../../../*[@name='f']] 
// -- input element whose name='q' and who is 5 parents up with the name='f' 

Sen XPath ifadeleri test etmek için bu masaüstü XPath Visualizer kullanabilirsiniz. Bir basic tutorial can be found here.

İlgili konular