UiPath实践经验总结(一)
用UiPath做RPA也有一段时间了,初上阵不久,遇到过不少大大小小的坑。以下列出一些心得体会,望能抛砖引玉,与同行进行更多交流。
1. 日志策略:将UiPath Robot的Logging Level设为Verbose,避免重新发明轮子。
2. 变量&参数命名要有规范,确保一眼就能看明白是什么类型什么用途。
3. 读取Configuration也有可能出错,需要包一层Try…Catch…。
4. 重复出现的逻辑应该提取出来作为单独的模块。
5. 避免在Open Browser中包含Activity,以使逻辑清晰,易于修改。
6. 每一 个Activity的作用/目的都要通过命名简要描述。
7. 避免使用Invoke Code,便于定位&调试问题。
8. 从Excel读取出来的DataTable要转换各列的DataType。
9. 避免使用Excel Application Scope,用Workbook Activities替代。
10. 避免使用非官方的Activities。
11. 常用的配置值要存为一个变量,以便于调用
12. PDF文档要打开后再打印,确保格式干净,稳定
13. 避免使用IF Activity,避免嵌套使用IF Activity,尽量使用Flow Decision替代
14. 用Element Exists超时不会报错,用On Element Appear和Find Element超时会报错
15. Web应用,WaitForReady必须设为Complete
16. 优先使用SimulateClick,其次是SendWindowMessages,最后才是Native,以提高性能,并且可以在后台运行
17. 操作前要确认处于预期的界面,确认目标Element已存在。操作后要确认操作结果正确,尤其是要确认Type Into输入了预期的值。
18. SimulateClick和SendWindowMessages操作过快,需要不断确认操作是否得到预期的结果
19. 选择打印机之后要确认是否正确连接打印机。如何确认?在打印界面点击Properties,确认弹出的窗口为预期的打印机属性窗口即可。
20. 对于有规律的网页数据,尽量先尝试Data Scraping (Extract Structured Data)。对自动产生的Selector采取逐层替换的方法改成正确的Selector。
21. 如何协调多个Project之间文件的分布,如何避免多人同时开发时的冲突?
22. 禁止使用Sequence,尽量使用Flow Chart
UiPath实践经验总结(一)的更多相关文章
- UiPath实践经验总结(二)
1. UI操作容易受到各种意外的干扰,因此应该缩短UI操作阶段的总体时间.而为了缩短UI操作阶段的总体时间,应该将UI操作尽量放在一起,将后台的各种操作尽量放在UI操作的前后.例如,现在有 ...
- [转]UiPath实践经验总结(二)
本文转自:https://www.cnblogs.com/ybyebo/p/10086473.html 1. UI操作容易受到各种意外的干扰,因此应该缩短UI操作阶段的总体时间.而为了缩短 ...
- CI Weekly #6 | 再谈 Docker / CI / CD 实践经验
CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...
- 根据实践经验,讲述些学习Java web能少走的弯路,内容摘自java web轻量级开发面试教程
在和不少比较上进的初级程序员打交道的过程中,我们总结出了一些能帮到合格程序员尽快进阶的经验,从总体上来讲,多学.多实践不吃亏.本文来是从 java web轻量级开发面试教程从摘录的. 1 哪些知识点 ...
- 华为云对Kubernetes在Serverless Container产品落地中的实践经验
华为云容器实例服务,它基于 Kubernetes 打造,对最终用户直接提供 K8S 的 API.正如前面所说,它最大的优点是用户可以围绕 K8S 直接定义运行应用. 这里值得一提是,我们采用了全物理机 ...
- 关于Flask使用Celery的实践经验分享
最近大Boss反馈Celery经常出现问题,几经实践终于把问题解决了!于是乎有了这篇博客的诞生,算是一个实践经验的分享吧! 软件版本如下: Celery () Flask () RabbitMQ( ...
- 领域驱动设计(DDD)的实践经验分享之ORM的思考
原文:领域驱动设计(DDD)的实践经验分享之ORM的思考 最近一直对DDD(Domain Driven Design)很感兴趣,于是去网上找了一些文章来看看,发现它确实是个好东西.于是我去买了两本关于 ...
- 领域驱动设计(DDD)的实践经验分享之持久化透明
原文:领域驱动设计(DDD)的实践经验分享之持久化透明 前一篇文章中,我谈到了领域驱动设计中,关于ORM工具该如何使用的问题.谈了很多我心里的想法,大家也对我的观点做了一些回复,或多或少让我深深感觉到 ...
- Sobol 序列并行化的实践经验
目录 Sobol 序列并行化的实践经验 随机数发生器并行化的常见策略 Sobol 序列的原理和跳转功能 Sobol 序列并行化实践 分块策略 蛙跳策略 蛙跳策略的计算量分析 减少异或计算的技巧 分块策 ...
随机推荐
- PAT1034;Head of a Gang
1034. Head of a Gang (30) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue One wa ...
- VC++中字符串编码处理的一些相关问题
前言 什么是tchar? 百度百科对其的定义如下": 因为C++支持两种字符串,即常规的ANSI编码(使用""包裹)和Unicode编码(使用L""包 ...
- Tiny4412 烧写uboot到emmc步骤
将uboot写入emmc,并通过EMMC驱动,不在只用SD卡启动 烧写uboot的之前用如下命令查看EMMC卡信息及分区信息: mmcinfo 0: 查看mmc卡信息, 0表示SD卡:1表示emmc卡 ...
- CUDA编程模型之内存管理
CUDA编程模型假设系统是由一个主机和一个设备组成的,而且各自拥有独立的内存. 主机:CPU及其内存(主机内存),主机内存中的变量名以h_为前缀,主机代码按照ANSI C标准进行编写 设备:GPU及其 ...
- JQUERY获取loaded 宽高这么变态
JQUERY获取loaded 宽高这么变态: $('<img/>').attr('src',img.src).load(function() { img.Owidth = $(this). ...
- Fedora Linux安装deb包
前言: 我们知道,在Linux系统上有两种主要的软件包格式,分别是RPM和deb. RPM是"RPM Package Manager(RPM软件包管理器)"的递归缩写.RPM是一种 ...
- safari浏览器模拟ipone,ipad以及其他浏览器版本
1.打开safari浏览器中的偏好设置 2.在偏好设置中,选择高级,勾选在菜单栏中显示开发菜单 3.打开开发,进入响应式设计模式 4.可以选择iphone 或ipad.浏览器等不同模式,进行模拟 5. ...
- tkinter中menu菜单控件(十二)
menu菜单控件 import tkinter wuya = tkinter.Tk() wuya.title("wuya") wuya.geometry("300x200 ...
- 实际项目开发需要注意的tips
1.尽量少用== 或者 != ,除非能够保证这里不会出现强制类型转换,严格起见,最好用 === 与 !==
- Java系列1 -- 浅谈面向对象
也许每一个计算机专业的人,在大学学习java的时候,老师开始时都会说这么一句话,"Java是一门面向对象的语言".那么面向对象到底是什么,他有什么好处,或者他比其他流行的语言C/C ...