• xpath定位大全


    //查找所有的”B”

    var xpath=”//B”;

    //查找所有元素

    xpath = “//*”;

    // 选择所有路径依附于/A/B/的元素

    xpath =”/A/B/*”;

    //选择所有的有3个祖先元素的B元素

    xpath =”///*/B” ;

    // 选择所有父元素是DDD的BBB元素

    xpath=”//C/D”;

    // 选择A/B/C的第一个E子元素

    xpath=”/A/B/C/E[1]”;

    //选择A/B/C的最后一个E子元素

    xpath=”/A/B/C/E[last()]” ;

    //选择有name属性的B元素

    xpath = “//B[@name]” ;

    //选择所有的name属性

    xpath=”//@name”;

    //选择有任意属性的B元素

    xpath=”//B[@*]”;

    //选择没有属性的B元素

    xpath=”//B[not(@*)]”;

    //选择含有属性id且其值为’e2’的E元素

    xpath=”//E[@id=’e2’]”;

    //选择含有属性name且其值(在用normalize-space函数去掉前后空格后)为’b’的B元素

    xpath=”//B[normalize-space(@name)=’b’]”;

    //选择含有2个B子元素的元素

    xpath=”//*[count(B)=2]”;

    //选择含有3个子元素的元素

    xpath=”//[count()=3]”;

    //选择所有名称为B的元素(这里等价于//B)

    xpath=”//*[name()=’B’]”;

    //选择所有名称以”W”起始的元素

    xpath=”//*[starts-with(name(),’W’)]”;

    //选择所有名称包含”W”的元素

    xpath=”//*[contains(name(),’W’)]”;

    //选择名字长度为2(大于、小于)的元素;

    xpath=”//*[string-length(name()) = 2]”;

    xpath=”//*[string-length(name()) < 2]”;

    xpath=”//*[string-length(name()) > 1]”;

    //多个路径可以用分隔符 | 合并在一起,可以合并的路径数目没有限制,选择所有的WF和C元素

    xpath=”//WF | //C”;

    //等价于/A

    xpath=”/child::A”;

    //等价于//C/D

    xpath=”//child::C/child::D”;

    //选择文档根元素的所有后代.即所有的元素被选择

    xpath=”/descendant::*”;

    //选择/A/C的所有后代元素

    xpath=”/A/C/descendant::*”;

    //选择D元素的所有父节点

    xpath=”//D/parent::*”;

    //选择WF元素的祖先节点

    xpath=”//WF/ancestor::*”;

    //包含上下文节点之后的所有兄弟节点(此节点之后的所有兄弟节点)

    xpath=”//WF/following-sibling::*”;

    //包含上下文节点之前的所有兄弟节点(此节点之前的所有兄弟节点)

    xpath=”//WF/preceding-sibling::*”;

    //包含同一文档中按文档顺序位于上下文节点 之后 的所有节点, 除了祖先节点,属性节点和命名空间节点

    xpath=”/A/B/following::*”;

    xpath=”//B/following::*”;

    //包含同一文档中按文档顺序位于上下文节点之前的所有节点, 除了祖先节点,属性节点和命名空间节点

    xpath=”//WF/preceding::*”;

    //包含上下文节点本身和该节点的后代节点;

    xpath=”//C/descendant-or-self::*”;

    //仅代表自身节点

    xpath=”//A/self::*”;

    //一起使用则包含所有节点

    xpath=”//WF/ancestor::* | //Wf/descendant::* | //WF/following::* | //WF/preceding::* | //WF/self::*”;

    //选择当前节点的文字

    xpath=”//E/child::text()”;

    //选择所有当前节点的子节点

    xpath=”//V/child::node()”;

    //选择偶数位置的B元素

    xpath=”//B[position() mod 2 = 0 ]”;

    //选择中间的E元素

    /*

    div运算符做浮点除法运算,

    mod运算符做求余运算,

    floor函数返回不大于参数的最大整数(趋近于正无穷),

    ceiling返回不小于参数的最小整数(趋近于负无穷) */

    xpath=”//E[ position() = floor(last() div 2 + 0.5) or position() = ceiling(last() div 2 + 0.5) ]”;

    //可以忽略空白,寻找属性name=’b’ or name=’ b ‘的元素

    xpath=”//@name[‘b’]”;

    //不忽略空白,完全匹配,寻找属性name=’b’的元素

    xpath=”//@name[.=’b’]”;

    2、使用dom定位

    //span[text()=’${stockName}’]/parent::/preceding-sibling:://div[@class=’num’]

    xpath:

    contains:.//a[contains(@class,’btnX’) and .//text()=’Sign in’]

    starts-with:.//a[starts-with(@class,’btnSelectedBG’)]

    使用相对位置定位当前元素的兄弟节点:

    //span[contains(text(),’昨收’)]/following-sibling::*[position() = 1]

    6、使用xpath匹配到多个元素时,可以使用一些关键字剔除掉某些不需要的元素

    xpath=//input[ not(@id)][@type=”checkbox”]

    这样就剔除了那些包含id属性的元素了

    xpath=//span[ contains(.,’已选’)]

    xpath=//iframe[ starts-with(@id, ‘compose’)]

    xpath= //li[@id=’btn_forward’]//i[@class=’i_triangle_d’]

    //span[text()=’买入’ and not(@class)]

    //img[contains(@id,’ext-gen605’)]

    //img[contains(@src,’/…../’) and index=1]

    3、定位元素出现多个,但只有一个可见,其他隐藏,可以这样定位:

    $(“.button:visible”)[0]

    $(“.code-name-line:visible”)[0].children[1]

    4、找出文本为“买入”的元素

    //button[text()=’退出’]

    //h1[contains(.,’人民币’)]

    此外,cssSelector还有一些高级用法,如果熟练后可以更加方便地帮助我们定位元素,如我们可以利用^用于匹配一个前缀,$用于匹配一个后缀,*用于匹配任意字符。例如:

    匹配一个有id属性,并且id属性是以”id_prefix_”开头的超链接元素:a[id^=’id_prefix_’]

    匹配一个有id属性,并且id属性是以”_id_sufix”结尾的超链接元素:a[id$=’_id_sufix’]

    匹配一个有id属性,并且id属性中包含”id_pattern”字符的超链接元素:a[id*=’id_pattern’]

    xpath指定子节点
    ---------------------
    作者:DaxiaLeeSuper
    来源:CSDN
    原文:https://blog.csdn.net/DaxiaLeeSuper/article/details/79347838
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    Android进程生命周期与ADJ
    四大组件之综述
    Linux进程pid分配法
    Linux的进程管理
    Linux硬盘管理
    Linux用户管理
    Linux命令行使用
    vim技巧5 常用操作
    vim技巧4 删除/保留文本中匹配行
    如何绘制UML图?
  • 原文地址:https://www.cnblogs.com/111testing/p/10848385.html
Copyright © 2020-2023  润新知