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]

你可能感兴趣的:(自动化测试)