2010-02-02 72 views
6

這是我在這裏的第一篇文章,因爲我看到很多很好的答案,我想我會試試看。包含一個屬性的XPath元素,其父項的父項包含另一個屬性

我正在嘗試使用XPath獲取HTML文檔中的特定元素。這是基於關閉谷歌網頁的例子:

<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> 

使用上面的例子(這是簡化了尋求幫助的目的),我希望能夠找到輸入元素,其名稱= 'q',並且誰的祖先是5個父母,名字爲'f'。

例如,如果我要在S.W.A.T的語法中這樣做。這是位於http://ulti-swat.wikispaces.com一種開源網絡自動化測試庫,語法如下:

| AssertElementExists |表達式|名= Q; parentElement.parentElement.parentElement.parentElement.parentElement.name = F |輸入|

我剛開始學習XPath,並試圖理解如何將謂詞與軸相結合。是否有可能使用XPath執行此類表達式?如果有的話,有人可以提供幫助嗎?

回答

13

,你可以這樣做:

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

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

你可以使用這個桌面XPath Visualizer來測試您的XPath表達式。 A basic tutorial can be found here

相關問題