项目经验分享帖 ------ 一:常见的网页 rpa 技术栈实现思路
常见的技术栈实现思路
网页相关操作
- 网页中常见的复杂的技术点有:
1.1 点击元素失效:
点击某个网页元素(或按钮、标签、下拉框、网页弹框、图标等),点击不到。或者根本无法捕获。
存在的可能原因有:
1.1.1: 网页元素嵌套的 iframe 中的元素失效,需要刷新该网页,重新获取,即外层重新进入,使得 rpa 能够获取到最新的网页元素,(如:下载后的页面)
1.1.2: 网页元素捕获不到,可能是网页前端进行了设置,不可编辑或者隐藏不可见,需要对前端进行 js 逆转,才能继续捕获。
1.1.3: 网页元素捕获不到,可能是网页本身无法被获取,或者按钮被‘别有用心’的包装,导致无法捕获,需要使用高级的捕获方法进行获取,类似捕获窗口中的元素的方法进行捕获。脱离浏览器网页捕获的层次,进入窗口层面去思考。
1.1.4: 有些网页元素或者按钮或者一些复杂,但位置基本确定的,可以使用坐标点击,(下下策,一般推荐快速开发或者实在搞不定,用这个临时可以代替,常见 poc 使用,适合跑短期流程,长期流程稳定执行,需要用其他)
1.1.5: 使用点击方案,可以多加异常捕获,对于疑难杂症可以多使用多种不同点击策略,加以 容错 依次进行,通过点击后的界面变化内容判断该点击是否生效,并且该种策略为了不影响整体流程缓慢,每种策略给的时间需要短,其实很多时候,页面都加载好了,只不过是点击本身方案不管用导致点击失效,而不是给的等待时间长短问题! 对于页面跳转稳定的,理论上讲可以等待 5 秒时间,但实际为了流程稳定,还是建议 15s 以上。
1.2 获取窗口失败:
窗口出现了无法捕获、窗口出现捕获不到,窗口出现能捕获但里面的按钮等元素无法捕获
1.2.1: 窗口出现了无法捕获: 对于该类窗口,其实是存在的,目前 rpa 自带的捕获窗口并不是绝对完美的,该类窗口即使你自己多花时间去突破,去捕获它,反而得不偿失,加一个容错和延迟等待,进行窗口的操作,往往很多窗口出现后,一个回车键就能搞定,但你假如去强行捕获它,并且设置,捕获成功后才回车,这样会让你很痛苦,因为该窗口捕获很麻烦,与其吃力不讨好,不如直接延迟等待一个合理的时间,一个回车确认就搞定,即使要输入什么东西,因为窗口出现后,假如你不进行任何操作,一个窗口出现,光标就会出现在输入框,即:直接输入你要输入的东西,该输入的东西会直接在弹框中进行输入的,输入完,回车即可或者 enter
1.2.2: 窗口出现捕获不到
其一:很可能你捕获到了窗口的’膜‘,即一级窗口标题,这种情况下需要使用窗口捕获工具,获取到窗口的二级甚至三级窗口,依次的尝试执行,你会找到真正属于它的真实窗口标题、class 等信息,届时你就能捕获到了。
其二:可能窗口存在多种可能性,即出现的窗口标题一直处于变化状态,此时你应该观察并思考,加以分析推理,找出所有窗口的唯一标签,进行对应的捕获,如:abc 窗口与 cbc 窗口,你判断 ab 是否出现,即判断 abc 窗口是否出现,若 abc 窗口出现,则按照 abc 窗口的处理进行处理,如 cb 出现,反之同理 ~
1.2.3: 窗口出现能捕获但里面的按钮等元素无法捕获: 需要用高级的获取方法去获取,跳出网页思考层面与窗口层面,用 windows 窗口层面去捕获即可 ~就先分享2个,后续补充,一次性发布,怕大伙看的烦,反而看的粗糙,慢工出细活,划水要有节奏!
回帖内容已被屏蔽。
好滴,有求必应。改天我专门整个帖子,围绕前端 js 的东西讲讲
右上角五角星
可以说非常详细了,点赞点赞,话说这怎么收藏啊
真不错,归纳了很详实,但是我还是恬不知耻的想要个示例,比如 js 逆转 哈哈哈
可以的
收藏 一下。