UiPath-SAP网页版操作小结

UiPath-SAP网页版操作小结

  • 缘起
  • 坑们
    • 1. 动态ID
    • 2. 动态Class
    • 3. 动态表格
    • 4. 元素的有效性
    • 5. 下拉菜单输入问题
    • 6. 查询页面的记忆功能
    • 7. 人手操作OK,RPA K.O.
  • 总结
  • 公众号

缘起

说起ERP,大家应该非常熟悉,这个神奇的东西可以帮助企业有效的推进信息化,起到提高效率、降低风险的作用。常见的ERP系统有SAP、甲骨文、Infor、浪潮、金蝶、用友等等。

最近做的项目中有一个是要操作SAP网页版,被小小的虐了一把,趁着测试阶段记忆尚新鲜,把一些印象比较深的坑总结一下。

坑们

1. 动态ID

在一个结构简单的网页中,ID作为相应元素的唯一的属性,理论上是很好的定位工具,然鹅现实是稍微有点技术构架的网页都会使用动态ID。
动态ID是老生常谈,这个其实很好辨别,比如SAP网页版,随手一抓,元素ID是WD0FA9——这种没有语义没有感情的字符串如果不是动态的,那这个前端会被接手的人拖出去打死的。有语义的ID其实也有风险,无论看起来这个ID靠不靠的住,请刷新页面验证。

2. 动态Class

在我为机智的躲过动态ID的坑而把第一个模块的所有元素的selector都改成Class + Row + Column之后,我一面默念技术的存在即合理,一面跪着把Class的一部分改成星号。。嗯,SAP作为一个技术成熟的公司,一个元素经常会有多种Class,而且排位末尾的一到两个是会变的。有些和元素的focus状态有关,有些我也不敢断言。

3. 动态表格

这里的动态表格,指的不是查询结果返回,就是正经的页面结构。在一些特殊的页面弹出框中,弹出框里每个元素的Row与Column都会随着填写状态而改变。
解决方法很简单,模拟业务操作,操作完一步再分析下一个空的selector。

4. 元素的有效性

相信Element Exists这个UiPath功能大家都用过,但在SAP网页版中,这个功能完全不能用。因为不论是页面任一角落的元素、还是任意弹窗的元素、甚至是搜索弹窗的结果展示元素,在SAP网页版中都是Exist的,唯一的区别大概就是可不可见了,用UIExplorer去检查,偏偏还没有类似visible这样属性,仰天长叹。
这个时候,解决的方法就是去观察不同元素不同状态下,是否有可见文本的变化,利用变化的文本元素的aaname去监测网页状态。

5. 下拉菜单输入问题

稍微了解过HTML的人都知道,网页中,下拉菜单一般都用Select。然而不走寻常路的SAP网页版,用的是text。且大部分下拉列表中所有值都是动态。按说直接用Set Text或simulate的type也没问题,可是对于这种元素,一个隐蔽的问题是如果列表中有开头单词相同的多项,那在RPA正确输入后,页面会自动匹配到首单词相同的第一项。呵呵。
解决方法,使用仿人操作的type,去掉simulate的勾,选中Click before type,输入后,再送上发自内心的祝福 Enter热键。

6. 查询页面的记忆功能

我们常用的引擎一般都会保留用户的搜索记录,用来做用户画像,从而让自己更受欢迎更值钱。万万没想到SAP公司也有这么人性化的功能。这个功能的弊端就是当RPA查询下一个item的值的时候,页面会直接显示旧的结果,导致大家都用一个值。
这个问题解决起来很简单,SAP网页查询页面一般有“Clear”功能,把这步点击加进去就好。

7. 人手操作OK,RPA K.O.

有些操作,比如在SAP网页版里输入员工号,再点搜索,很简单的操作。但是用RPA做,无论是不是simulate操作,都无法成功。原理不明。
这个时候需要在RPA中添加结果检查机制,回查输入框是否输入成功。

总结

SAP网页版虽然让我损失了一些头发,但是看着里面丰富的JS代码,不得不说,这不愧是一个技术非常完善的ERP软件,亦很严谨,能在ERP界独占鳌头是有原因的。但是这个软件太“重”了,界面往往十分卡顿,无论是给运维、给用户、还是给RPA开发都带来了一些额外的压力。
它帮助了很多企业顺利的走向了信息化,但是要走向数字化,恐怕SAP还需要砥砺前行。2018年收购了Contextor并计划在2019年将智能RPA功能纳入SAP S/4HANA应用程序,并循序渐进地推广到其他SAP应用程序。
对此,让我们保持期待吧。虽然已经复杂化的东西已经不可以回去了,就看看在它发展策略发生改变的未来究竟其他的RPA产品是被更加排斥,还是更容易被其他的RPA产品操作了。希望是后者,阿门。

公众号

刚刚开通公众号,名叫柚点技巧,感兴趣的朋友可以添加关注,方便交流
在这里插入图片描述

你可能感兴趣的:(UiPath)