美文网首页
2016.9.20 automation 总结二

2016.9.20 automation 总结二

作者: 流浪骑士 | 来源:发表于2016-12-09 16:19 被阅读26次

    关于xpath 定位部分呢,除了《2016.9.20 automation 总结》中 最后一部分总结的xpath基础外,
    可能有时候我们遇到一些不好定位的元素。
    你有遇到过定位一个元素,需要先有一个有特殊特性的元素,找到它的祖先元素,在通过祖先元素,在找它的子孙来定位的吗?
    遇到过定位某个元素包含固定的属性,但是属性值不固定的吗?
    Xpath 还提供了一些keywords 来实现更多定位

    ancestor:祖先节点
    ancestor-or-self: 寻找自己或者祖先节点
    /*[@class] : 找有class 属性的元素
    //div[ul] : 找有孩子tag 是ul (不包含孙子,只孩子)的div 元素
    preceding-sibling: 查找文档内与当前节点同一父节点,且上面显示的兄弟姐妹
    following-sibling: 查找文档内与当前节点同一父节点,且当前节点下面的兄弟姐妹
    preceding: 当前节点前所有的元素
    following:当前节点后所有的元素
    parent: 当前节点的父节点
    descendant: 后裔
    

    For Example:

    假设HTML 如下 :

    <div id="parent">
        <a id="name"> 1</a>
        <div id="c"> 
             <a id="a"> 内部</a>
        </div>
        <em>3</em>
    </div>
    

    Xpath 及对应结果:

      //*[@id="a"]/ancestor::*, 结果是   <div id="parent">,  <div id="c"> 
      //*[text()="3"]/preceding-sibling::*,    结果是  <a id="name">, <div id="c">
      //*[text()="2"]/preceding-sibling::*,   结果是  <a id="name">
      //*[text()="2"]/following-sibling::*,   结果是 <em>
      //*[text()="2"]/parent::*,        结果是   <div id="parent">
      //*[@id="parent"]/child ,       结果是   <a id="name"><div id="c">, <em>
      //*[@id="parent"]/descendant::* ,         结果是   <a id="name"><div id="a">, <a id="a"><em>
    //*[@id="parent"]/descendant::a ,         结果是   <a id="name">, <a id="a">
    

    相关文章

      网友评论

          本文标题:2016.9.20 automation 总结二

          本文链接:https://www.haomeiwen.com/subject/jhuemttx.html