selenium 网页动态元素的定位

使用selenium做网页UI自动化的时候,会遇到网页元素ID是动态加载生成的情况,这个时候使用传统的xpath精确定位,会找不到元素,这个时候可以考虑模糊匹配定位,匹配元素定位中不变且唯一的地方

可以使用的方法有

starts-with(以什么开始)

ends-with(以什么结束)

contains 包含

 

以contains 为例子:

比如我们在定位中使用的xpath定位一个使用下拉框中的某一项值,我们得到的xpath为

.//*[@id='cascader-menu-3932']/li[1]

 

目标下拉框元素中的3932是一个后台动态加载给前台的值,每次刷新网页都会变化,这个时候使用传统的xpath定位,一定是找不到该元素的,可以将上述标黄的部分改写成模糊匹配

[@id='cascader-menu-3932']

[contains(@id,"cascader-menu")]

其他的部分不改变,直接搬回来,然后就可以正常定位了

.//* + [contains(@id,"cascader-menu")] + /li[1] = .//*[contains(@id,"cascader-menu")]/li[1]

  • 8
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值