B/S 架构系统中鼠标点击等控件失效问题判断处理
近期在做的 B/S 架构的系统流程中,有几位同学会反馈一个问题,设计流程时鼠标点击按钮可以使用,但是系统重启后,或者加入循环流程后,第二次执行鼠标点击时,就无法使用了。那么有什么可能引起呢,我们测试了流程中的鼠标点击控件发现了以下情况:
1、首先我们通过鼠标点击流程拾取了需要点击的控件
可以看到鼠标点击拾取的为标准控件,并非图片识别,所以排除分辨率或者图片识别异常造成的控件失效。
2、查看失效报错,发现报点击元素错误。
于是对于拾取的控件进行检查发现了原因:
核查控件的查找路径,我们发现设计器默认选择了第一个 header 标识。
全部路径为:‘#C13_W42_V43_ZSSFList__header_bee__1’
我重启了网页又重新拾取了以下刚才的框体,发现获取的路径为:‘#C17_W42_V43_ZSSFList__header_bee__1’
由于查找的路径发生了变化导致,导致第二次执行此控件时报错,无法进行自动化流程。
3、解决方案
查找路径的选项比较多,所以我们分别对两次拾取的控件查找路径进行比对,发现该控件元素包括 id、body 并未发生改动,所以我们将查找路径设置成 body,即最后一个选项,然后再次执行发现可以正常拾取了。并且重启网页以及设置循环也能正常运行,没有出现控件失效的情况。
当然我们还可以通过拾取外部路径不变的框架,以及利用一些固定控件通过鼠标偏移来达到同样的效果。
以上是第一种情况报错,控件元素拾取失败。生产上还发现了另外一种情况,也是因为某个配置发生变化导致执行失败。
如下图:
流程执行循环时报以下错误:
编译器报错 ‘窗口激活动作错误’
但是我们检查窗口已经正常激活了,于是分别拾取两次页面弹出的控件,对属性配置进行检查,发现了窗口标题发生了以下变化
第一次拾取窗口标题:‘ERP 会计核算 - 南京分中心: 5001067242, 20181023 广发银行有误记账 - SAP - Windows Internet Explorer’
循环一次后窗口标题:‘ERP 会计核算 - 南京分中心: 5001062644, 10.29 交行银行有误再付退款(10 月 -1) - SAP - Windows Internet Explorer’
于是我们将窗口标题的勾选框去掉,再次运行一下发现就可以正常拾取了。(当然由于我们取消了窗口标题的勾选,所以我们执行流程时一定要确认这个窗体已经显示在桌面上)
另外还提供一个思路,我们可以每次进入该页面时获取窗口标题,将窗口标题赋给变量,随后将此变量传入鼠标点击函数。这样同样不会出现窗口未激活的报错。
所以以后各位处理 B/S 架构如果遇到鼠标点击等控件失灵的情况,不妨先查看一下是否是因为查找路径发生变化又或者是窗口标题变化引起的。
若有建议或者错误欢迎纠错指出 😄
不错