xpath最通俗的教程-zt

上一篇 / 下一篇  2009-01-14 17:16:49 / 个人分类:selenium

xpath最通俗的教程-zt

实例 1
基本的XPath语法类似于在一个文件系统中定位文件,如果路径以斜线 / 开始那么该路径就表示到一个元素的绝对路径

/AAA

选择根元素AAA


     <
AAA
          <BBB/> 
          <CCC/> 
          <BBB/> 
          <BBB/> 
          <DDD
               <BBB/> 
          </DDD
          <CCC/> 
     </
AAA>

 

/AAA/CCC

选择AAA的所有CCC子元素


     <AAA
          <BBB/> 
          <
CCC/> 
          <BBB/> 
          <BBB/> 
          <DDD
               <BBB/> 
          </DDD
          <
CCC/> 
     </AAA>

 

/AAA/DDD/BBB

选择AAA的子元素DDD的所有子元素


     <AAA
          <BBB/> 
          <CCC/> 
          <BBB/> 
          <BBB/> 
          <DDD
               <
BBB/> 
          </DDD
          <CCC/> 
     </AAA>

 

 

实例 2

如果路径以双斜线 // 开头则表示选择文档中所有满足双斜线//之后规则的元素(无论层级关系)

 

//BBB

选择所有BBB元素


     <AAA
          <
BBB/> 
          <CCC/> 
          <
BBB/> 
          <DDD
               <
BBB/> 
          </DDD
          <CCC
               <DDD
                    <
BBB/> 
                    <
BBB/> 
               </DDD
          </CCC
     </AAA>

 

//DDD/BBB

选择所有父元素是DDDBBB元素


     <AAA
          <BBB/> 
          <CCC/> 
          <BBB/> 
          <DDD
               <
BBB/> 
          </DDD
          <CCC
               <DDD
                    <
BBB/> 
                    <
BBB/> 
               </DDD
          </CCC
     </AAA>

 

 

实例 3

星号 * 表示选择所有由星号之前的路径所定位的元素

 

/AAA/CCC/DDD/*

选择所有路径依附于/AAA/CCC/DDD的元素


     <AAA
          <XXX
               <DDD
                    <BBB/> 
                    <BBB/> 
                    <EEE/> 
                    <FFF/> 
               </DDD
          </XXX
          <CCC
               <DDD
                    <
BBB/> 
                    <
BBB/> 
                    <
EEE/> 
                    <
FFF/> 
               </DDD
          </CCC
          <CCC
               <BBB
                    <BBB
                         <BBB/> 
                    </BBB
               </BBB
          </CCC
     </AAA>

 

/*/*/*/BBB

选择所有的有3个祖先元素的BBB元素


     <AAA
          <XXX
               <DDD
                    <
BBB/> 
                    <
BBB/> 
                    <EEE/> 
                    <FFF/> 
               </DDD
          </XXX
          <CCC
               <DDD
                    <
BBB/> 
                    <
BBB/> 
                    <EEE/> 
                    <FFF/> 
               </DDD
          </CCC
          <CCC
               <BBB
                    <
BBB
                         <BBB/> 
                    </
BBB
               </BBB
          </CCC
     </AAA>

 

//*

选择所有元素


     <
AAA
          <
XXX
               <
DDD
                    <
BBB/> 
                    <
BBB/> 
                    <
EEE/> 
                    <
FFF/> 
               </
DDD
          </
XXX
          <
CCC
               <
DDD
                    <
BBB/> 
                    <
BBB/> 
                    <
EEE/> 
                    <
FFF/> 
               </
DDD
          </
CCC
          <
CCC
               <
BBB
                    <
BBB
                         <
BBB/> 
                    </
BBB
               </
BBB
          </
CCC
     </
AAA>

 

 

 

实例 4

方块号里的表达式可以进一步的指定元素其中数字表示元素在选择集里的位置last()函数则表示选择集中的最后一个元素.

 

/AAA/BBB[1]

选择AAA的第一个BBB子元素


     <AAA
          <
BBB/> 
          <BBB/> 
          <BBB/> 
          <BBB/> 
     </AAA>

 

/AAA/BBB[last()]

选择AAA的最后一个BBB子元素


     <AAA
          <BBB/> 
          <BBB/> 
          <BBB/> 
          <
BBB/> 
     </AAA>

 

 

 

实例 5

//@id

选择所有的id属性


     <AAA
          <BBB
 id = "b1"/> 
          <BBB
 id = "b2"/> 
          <BBB name = "bbb"/> 
          <BBB/> 
     </AAA>

 

//BBB[@id]

选择有id属性的BBB元素


     <AAA
          <
BBB id = "b1"/> 
          <
BBB id = "b2"/> 
          <BBB name = "bbb"/> 
          <BBB/> 
     </AAA>

 

//BBB[@name]

选择有name属性的BBB元素


     <AAA
          <BBB id = "b1"/> 
          <BBB id = "b2"/> 
          <
BBB name = "bbb"/> 
          <BBB/> 
     </AAA>

 

//BBB[@*]

选择有任意属性的BBB元素


     <AAA

TAG: Selenium xpath XPATH

jiang-chao的个人空间 引用 删除 jiang-chao   /   2013-06-20 10:28:22
看完算是有点基础了!
 

评分:0

我来说两句