应用元素无法拾取怎么办?GPT 的回答是

背景

ISRPA中,默认拾取无法拾取到元素时,该用什么方法才能拾取到?
在社区里有类似提问,大多是以下经验方案,逐各尝试:
1、UIA 等原生拾取(分应用的,java、sap、浏览器等)
2、相对位置区域拾取
3、图片拾取
4、智能拾取

思考

能否按提供的拾取方法轮询一遍,直到成功拾取元素?
用户的最终目的是什么?我想应当是能够使应用程序自动化。
提供的默认拾取方式拾取不到元素时,往往要手动切换拾取方式;
或不清楚用什么拾取方式能够拾取到,经常在社区有提问拾取不到,该怎么拾取。

!!!
但这个经验不是每个用户都知道,当然也有运维人员服务,
为何不做成功能来交互实现,直到帮助用户拾取到元素;
而不是从这些拾取方法下选择。

一、交互式拾取

1、拾取模式后,屏幕顶部中央有一个大胶囊形状的深色背景,自适应拾取交互提示区域(以下简称“交互区”),
交互区可拖拽移动到屏幕其他位置;类似 iPhone 的【灵动岛】
2、兼容原有模式,移动鼠标画框,表示正在拾取元素,拾取到元素【点击】结束拾取,返回设计器;
3、交互区给与提示:正在 UIA 拾取元素…;【F12】回放验证元素;

!!!
4、如果元素无法验证,或者拾取不到,用户可按【向右→】【向下↓】键进入下一拾取;

5、或者若鼠标仍然悬停,并未【点击】结束拾取,3 秒后交互区则提示:
【向右→】【向下↓】进入下一拾取模式(或 10 秒后自动进入下一拾取,【回车】为确认);

6、相对位置拾取、图片拾取,也有特定交互:

6-1、相对位置区域拾取,交互区提示:
正在查找最近一个锚点元素;
成功后出现绿色连线,交互区提示:
锚点查找成功,【回车】确认此相对位置,
【Delete】删除键则否定此锚点,找第二靠近的元素。
【点击】拾取成功并退出拾取;

6-2、图片拾取,交互区提示:
鼠标滑动一个元素区域截图。
用户滑动后,交互区提示:正在截图,正在与应用图片比对,查找成功。

7、最后一个智能拾取

8、交互区快捷键:
【End】为最后一个拾取模式(智能拾取),
【Home】回到第一个原生拾取(UIA、浏览器、sap 等),
【空格】暂停拾取

9、保留原有拾取功能的快捷键,做到老版本用户使用习惯。

二、自适应拾取

同时提供一种自适应拾取方式,即拾取多种模式下的原生信息,在回放验证时逐各适用,直到应用元素自动化成功:
1、交互区有一个按钮:自适应拾取【F1】切换,进入该拾取模式下,
鼠标移动到程序会对应用界面做目标检测,交互区提示:

正在检测。。。;
目标检测成功;
请点选范围内目标元素;

用户点击后,交互区提示:正在自适应拾取。。。

2、此时会将对所有拾取类型,原生 UIA、相对位置、图片拾取、智能拾取,全部收集所需属性。
3、自动回放验证(或【F12】手动验证),会逐各使用不同的方式来定位该元素。
4、流程运行时,优先从已验证的方式开始,直至应用程序自动化成功。

三、简化元素

1、可以提供自由修改的途径,同时为用户提供方便易于选择的属性,目的是元素能被找到并成功自动化;
如提供多种标题选择、多种 xpath 选项、收起不常用的属性,等;

2、减少同类元素的属性区分,以及属性通用性,例如一次拾取多个浏览器运行;

3、最终目的是成功自动化,高效完成标准化工作,同时流程维护亦要高效可快速设计,如批量修改,相似性元素等;

最后

以上结合 ChatGPT 问答式产生的结果,围绕“如何自适应的对不同应用 UI 元素拾取,以做到应用程序自动化。”
《ISRPA 一种目标应用元素自适应交互式拾取》
🦄欢迎留言补充。