Python UI自动化-Selenium【元素定位Xpath】

Xpath定位方式

  1. 绝对定位(绝对路径)
    以/开头:父元素/子元素[位置] 顺序和位置
    存在的问题:严格按照顺序、位置

  2. **相对定位
    根据元素的特征来查找元素,不用考虑位置/顺序

元素定位方法

  1. 查看元素有什么特征 f12
  2. 编写相对定位表达式,边写边确定是不是能唯一找到
    • //标签名[@属性名=值]

    • 多个属性组合用: and or
      //标签名[@属性名=值 and @属性名=值]

    • 文本内容(要根据业务来判断,文本内容是否会变动,如果是变动的,那就不能用文本定位)
      //标签名[text()=文本内容 ]

    • 模糊匹配 - contains(text()/@属性,“值”)
      //标签名[contains(text()/@属性,“值”)]

    • 任意元素匹配到括号里的内容!
      //[text()=“值”]
      //span[@
      =“值”]
      //[@=“值”]

    • 层级定位 - 通过祖先找你—逐级定位
      元素之间的关系:通过你自己本身的特征无法唯一定位到你自己
      按照html的元素顺序,从上到下的逐级定位://祖先元素1//祖先元素2…//要定位的元素

    • 层级定位 - 通过兄弟元素找你、通过子元素找祖先元素—轴定位
      元素之间的关系
      语法:已知元素(//…//…)/轴名称::标签名称[@属性名称=“属性值” and @属性名称=“属性值”]//…

  举例:
  //div[@id="u1"]//a[@name="tj_login"]
  搜索范围从整个html缩小到div[@id="u1"]这个元素: //div[@id="u1"]
  然后从div[@id="u1"]这个元素的后代中去查找//a[@name="tj_login"]

轴名称的4种

  parent:父元素
  ancestor:祖先元素
  preceding-sibling:亲生的姐姐/哥哥元素(同一个父元素,但是在html当中排在你要找的元素前面)
  following-sibling:亲生的妹妹/弟弟元素(同一个父元素,但是在html当中排在你要找的元素后面)

你可能感兴趣的:(自动化,selenium,html)