web自动化过程中,对于风格比较统一的界面,很多样式会出现重复,可能在使用CLASS_NAME定位时导致定位错误。
如下图,你想用CLASS_NAME定位【新增】,find_element(By.CLASS_NAME,“btn.btn-sm.btn-info”),但是因为【一键删除】在【新增】的前面,且其class属性值为"btn btn-sm btn-info del-item",根据元素的查找顺序是从上至下的,所以会先定位到【一键删除】。
原因很简单,"btn btn-sm btn-info"是"btn btn-sm btn-info del-item"的子串,CLASS_NAME元素定位方法类似于关键字查找。CLASS_NAME元素定位会以第一个符合匹配条件的来返回查找结果,所以,查找元素的结果并不符合预期,导致元素定位失败。
总结:在元素定位过程中,要多查找页面是否存在重复的属性值,以准确找到目标元素。