今天碰到个诡异的“元素不可被点击”,当元素点击失败时,首先考虑的大概就是以下内容:
1. 元素是否可定位到:排除元素定位问题、及定位多个元素的可能;
2. 元素是否可被点击:排除元素被隐藏、不可用的可能;
3. 元素是否在可见范围内:排除元素不在可见范围的可能;
在排除了以上3点后,就可以解决绝大多数的点击失败问题
但这一次的却不在以上3点的能力范围内,根据以上3点检查后确认:
该元素定位正确、且仅匹配到一个元素,元素未被隐藏、未设置不可用,在可见范围内
另外,按照用例操作流程,手工操作,元素点击没问题
其实还有一个被忽略的点:
4. 元素是否被遮挡
由于前端页面都是由div标签布局的,div除了长、宽属性,还有一个z属性用于标识div的三维空间层级,而且div还有能够多层堆叠,会导致明明肉眼能看见,但却定位不到,这种情况可以通过F12进行元素定位,若能定位到,则元素表层没有遮罩
但向这次i标签的定位,F12也能定位到,我就下意识认为标签没有被遮挡
最后,根据click失败的日志找到了click点击的坐标,通过F12定位点击的坐标位置时,才发现居然是被旁边的图层遮盖住了
无巧不成书,我也不写书啊!点击的点,正正好在被遮住的边界处!所以,最终的问题,还是第4点元素是否被遮挡!!!细心、细心、再细心!