接了个活:公司用了八年的行业客户端,要每天从里面导数据。这软件没有接口,界面是自绘的,元素捕获抓不到,连导出按钮都是一张贴图。
以前每天人工点一遍,十分钟,无聊但不敢错。后来我用光刃RPA 把它做成了机器人,核心思路就一句话:元素抓不到,就让机器人看。一、三件套兜底,总有一个抓得到这类老系统有一套降级打法:1. 先试窗口元素捕获,标准控件直接读控件树,最稳;2. 抓不到就图像找图,把按钮截成小图,让机器人在屏幕上找坐标;3. 图里有字就上 OCR,识别文字顺便定位。我这套流程里,三个都用上了。二、找图:把贴图按钮变成坐标做法很笨但有效:把那个导出按钮截图,裁得只剩按钮本体,流程里用图像找图拿到坐标,再接一个鼠标点击。有个坑必须说:截图要和实际显示同分辨率、同缩放。我们电脑是 125% 缩放,头一版截图是在系统默认缩放下截的,死活找不到,查了半天才发现是缩放对不上。三、OCR:把图片里的数字读出来界面上有块本月累计:8,732.50,要读进流程做比对。用 OCR 识别区域框住那块,返回文本后用文本指令清洗成数字,存进变量。数字清晰的话识别很少出错;实在不放心,就在前面加一步裁剪放大,准确率还能再提一截。四、稳定性是磨出来的老系统自动化最怕偶尔不灵,我加了三道保险:1. 找图失败自动重试 3 次,间隔 1 秒;2. 还找不到就截图存档加写日志,跑完看一眼日志就知道哪天出的岔子;3. 鼠标用拟人轨迹移动、点击加随机延时,有些老软件会检测鼠标像不像机器,直线瞬移容易被它盯上。跑了两周,一天都没掉过链子。五、丑话说在前面图像方案的稳定性天然不如元素定位:换分辨率、换主题、界面改版,截图都得重做。所以我的顺序永远是:能用元素就用元素,实在不行才上图像,并且一定配日志告警。这套东西不难,难的是你敢把看起来只能人做的活,交给机器人试一次。