• selenium04-简单的 xpath 表达式


    有时候会遇到元素属性不带 id 和 name,或者遇到动态 id,且不能使用 link_text 进行元素定位时,使用 css_selector 定位或 xpath 定位就很适合。

    虽然多数情况下,浏览器审查元素本身都支持直接提取 xpath 路径,但有时候也会出现提取出的 xpath 错误的情况,所以对 xpath 表达式稍微了解有益于对错误的 xpath 表达式的分辨,以及手动去更改。

    当然,这里只列举一些简单的 xpath 路径表达式 

    /AAA  #选择根节点 AAA

    /AAA/BBB  #根据绝对路径选择元素

    /AAA/CCC/DDD/*  #选择 /AAA/CCC/DDD/ 下所有元素

    /*/*/*/BBB  #选择有3个祖先元素的 BBB 元素

    /AAA/BBB[1]  #选择AAA的第一个BBB 子元素

    /AAA/BBB[last()]  #选择AAA的最后一个BBB 子元素

    //*  #选择所有元素

    //AAA  #扫描整个文档,找出所有 AAA 元素

    //AAA/BBB  #所有父元素为 AAA 的 BBB 元素

    //AAA[@id]  #所有有 id 属性的 AAA 元素

    //AAA[@id=BBB]  #所有有 id 属性为 BBB 的 AAA 元素

    //BBB[@*]  #选择有任意属性的 BBB 元素

    //*[count(BBB)=2]  #选择含有2个 BBB 子元素的元素

    //*[count(*)=2]  #选择含有2个子元素的元素

    //BBB[not (@*)]  #选择没有属性的 BBB 元素

    //*[local-name()='AAA']  #找到 tag 为 AAA 的元素

    //*[starts-with(local-name()), 'AAA']  #找到所有 tag 以 AAA 开头的元素

    //*[contains(local-name(), 'AAA')]  #找到所有 tag 包含 AAA 的元素

    //*[string-length(local-name()) = 3]  #找到所有 tag 长度为3的元素

    |  #多个路径合并在一起,其实就相当于“与或非”中的“或”。例:

    //CCC|//BBB  #选择所有的 CCC 和 BBB 元素

    name()  #返回元素名称

    start-with(A, B)  #接受两个参数,A 是以 B 为开始的

    contains(A, B)  #接受两个参数,A 是包含 B 的

    //*[name()=BBB]  # name 名称为 BBB 的元素

    //*[starts-with(name(),B)]  #所有 name 名称为以 起始的元素

    //*[contains(name(),C)]  #所有 name 名称包含 的元素

  • 相关阅读:
    使文件(夹)默认显示方式为“详细信息”而非“平铺”
    一个简单的Oracle任务
    SQL Server查询速度慢原因及优化方法
    双筒望远镜选购知识
    在 net send 命令中实现换行(信使服务)
    用SQL产生一串5位数字的随机数
    初试couchbase(安装配置)
    php的扩展memcache和memcached区别分析
    监控程序执行时间并将其写入日志的脚本
    IOS Object C id,class,sel,bool
  • 原文地址:https://www.cnblogs.com/maigeyouziba/p/11192561.html
Copyright © 2020-2023  润新知