优秀的编程知识分享平台

网站首页 > 技术文章 正文

软件测试学习笔记丨高阶定位-Xpath

nanyue 2024-11-14 16:47:30 技术文章 3 ℃

包含-contains()

  • contains() 函数定位的元素很容易为 list
  • contains() 函数内的属性名需要用 @开始
//*[contains(@属性,"属性值")]

XPath 轴

  • 父子-当前节点的父节点
//*[@text="HK"]/..
//*[@text="HK"]/parent::*
  • 父子-当前节点的子节点
//*[@resource-id="com.xueqiu.android:id/stock_layout"]/child::*
  • 爷孙-当前节点的爷爷
# 当前节点的父级的父级
//*[@text="HK"]/../..
//*[@text="HK"]/parent::*/parent::*
  • 爷孙-当前节点的孙子
# 当前节点的儿子的儿子
//*[@resource-id="com.xueqiu.android:id/stock_layout"]/child::*/child::*
  • 祖先-ancestor
# 返回当前节点的所有祖先
//*[@text="HK"]/ancestor::android.widget.RelativeLayout
# 显式指定要返回的祖先
//*[@text="HK"]/ancestor::android.widget.RelativeLayout[1]
  • 兄弟姐妹-sibling
  • 节点前的兄弟姐妹节点: preceding-sibling

# 选择当前节点之前的所有兄弟节点 # 节点前有一个兄弟节点 //*[@text="HK"]/preceding-sibling::* # 节点前有多个兄弟节点 //*[@text="HK"]/preceding-sibiling::*[@resource-id="com.xueqiu.android:id/price_layout"]

  • 节点后的兄弟姐妹节点: following-sibling

# 选择当前节点之后的所有兄弟节点 # 节点后有一个兄弟节点 //*[@text="HK"]/following-sibling::* # 节点后有多个兄弟节点 //*[@text="HK"]/following-sibiling::*[@resource-id="com.xueqiu.android:id/price_layout"]

XPath 运算符

  • AND: 定位是 2 个条件的交集
//*[@resource-id="com.xueqiu.android:id/current_price" and @text="107.8"]
  • OR: 定位是 2 个条件的是并集
//*[@resource-id="com.xueqiu.android:id/tv_stock_add_follow" or @text="加自选"]

霍格沃兹的测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供 1v1 私教指导,BAT 级别的测试管理大咖量身打造职业规划。

Tags:

最近发表
标签列表