zoukankan      html  css  js  c++  java
  • selenium元素定位方式xpath总结

    一.绝对路径(不要使用,除非已经使用了所有方式仍然无法定位)
    方法:根据实际目录,逐层输写。
    例子: find_element_by_xpath("/html/body/div[2]/form/span/input") #div[2]指第2个元素
    二.相对路径(建议使用)

    方法:首先找目录元素是否有”精准元素“即唯一能标识的属性,找到,则用此属性定位;

    1. 通过元素本身的唯一属性定位

       方法:找到目标元素所在的”精准元素“即唯一标识属性,使用此属性定位

    1.1 通过id属性定位
          例:find_element_by_xpath("//input[@id='input']")        #@后跟属性,可以是任何属性

    1.2 通过name属性定位
          例:find_element_by_xpath("//div[@name='q']")

    2. 通过上一级目录的唯一属性定位

        方法:目标元素没有唯一属性,则去找到与目标元素相近的上级目录中”唯一元素“作为起始位置,然后根据此相对位置逐层往子目录编写到目标位置

    例:  find_element_by_xpath("//span[@id='input-container']/input") 

            find_element_by_xpath("//div[@id='hd']/form/span/input")

           find_element_by_xpath("//div[@name='q']/form/span/input")

    3.  xpath做布尔逻辑运算
    例子:find_element_by_xpath("//div[@id='hd' or @name='q']")
    4. 双条件同时过滤
          find_element_by_xpath("//div[@id='hd'][@name='q'")

    5.目录元素存在层级关系

     

    例1: find_element_by_xpath("//ul[@class='app-list']/li[contains(@class,'safe')]/div")
     例2:定位上一层再定位目标元素(定位dl再定位dt)

    find_element_by_xpath("//form[@id='J_login_form]/dl/dt/input[@id='J_password']")


     
    6. 模糊定位

     

    6.1 contains 方法(包含)

    find_element_by_xpath("//a[contains(@name,'trnews')]")

    6.2 start-with方法(以XX开头)

    find_element_by_xpath("//a[start-with(@href,'http')]")

    6.3 text方法

    find_element_by_xpath("//a[contains(text(),'新闻')]")  查找超链接元素的文本内容

    find_element_by_xpath("//*[text()='新闻']")  查找所有内容为退出二字的元素

    注意:元素属性值有空格时,尽量不使用带空格,可用contains等其他方法,避开空格
    ---------------------
    版权声明:本文为CSDN博主「hou_angela」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/hou_angela/article/details/80305828

  • 相关阅读:
    Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(二)之Introduction to Objects
    Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(一)之Introduction
    JMock2入门
    webWMS开发过程记录(六)- 详细设计之系统管理
    webWMS开发过程记录(五)- 详细设计之系统界面框架设计
    基于gensim深入自然语言处理
    sublime text 搭建anconda的python开发环境遇到问题
    文本分类
    简介:机器学习模型在数学就是解决代价函数的最优化问题
    学习笔记一 线性代数
  • 原文地址:https://www.cnblogs.com/wang1yi1xian1/p/11357861.html
Copyright © 2011-2022 走看看