在大型企业RPA CoE团队工作的RPA Developer ,由于团队需要遵循的标准流程,代码审查过程的实施,可以确保最佳编码实践和尽可能多库中可重用的代码模板。但是更多的刚开始接触Uipath专业人员刚开始往往很难避免这些错误。
UiPath RPA开发人员的5个常见错误
#1 未找到选择器/ UI元素未发现
异常类型:UiPath.Core.SelectorNotFoundException
Uipath流程测试或执行的时候,最容易出现的错误就是元素识别错误。其实无论是使用Uipath还是其它RPA工具,这个错误始终都可以排在第一位。
导致这个错误的原因一般有以下几点:
* 在一个或多个属性中捕获的特定于环境的名称,例如qa / uat / dev等。应用程序URL包含端口号,该端口号在不同环境中有所不同 “ cls”或“ title”或CSS属性中的动态值。* 在单击或在某些字段中键入之前,没有检查构建以测试元素是否存在。* 使用动态选择器来构建标题或其他格式不正确且空间未调整的属性。* 使用id属性;有时属性ID会动态更新,因此请使用通配符并形成自己的自定义选择器。* 未使用“附加浏览器/附加”窗口。
RPAPlus:关于Attach Browser或Attach Windows ,这一步最核心的意义是要告诉RPA,你需要跟某个特定的浏览器打交道,而不是另一个有相似Selector的窗体,别的窗体获取信息可能报错,可能获取了错误信息而不自知。Uipath在元素拾取阶段并不会像BluePrism之类的工具强制Attach ,这样带来的使用体验是,一个看起来更方便,一个更严谨。
#2 调用的对象是空的
这是Uipath开发容易犯下的另一个常见的错误。
异常类型:System.NullReferenceException
当使用没有设置值的变量(未初始化)时,通常会发生这个错误。该错误的说明是很容易理解,但是如果没有太多的开发经验还是比较容易犯这个错误。
因此,此错误描述说被调用以获取或设置其值的对象没有引用。这意味着您正在尝试访问未实例化的对象。
“如果可以为空,则将为空”
这是一个非常常见的错误,可能由于各种原因而发生。根本原因确实取决于遇到的特定情况。
为避免此问题,
* 在if语句中专门使用变量之前检查null* 检查是否从其他工作流程中收到任何参数* 检查是否使用剪贴板设置变量值* 检查文件读取操作后是否尝试获取文件内容* 循环活动前检查并验证DataTables
Uipath Studio中有“删除未使用变量的功能”,不过可能无法完全消除以上的问题。
#3 活动超时问题
异常类型:UiPath.Core.ElementOperationException:达到超时
当机器人正在等待某些元素出现在屏幕上并且该元素即使在30秒(默认)后仍在屏幕上不可用时,会发生错误“超时”。
尽管可以使用元素的外观,但是元素的背景代码可能未完全加载到系统中。
某些不需要的弹出屏幕也会导致异常。
也可能是由于网络延迟导致在特定的超时窗口中无法正确加载。
或者可能完全在不同的屏幕上
在对元素执行任何操作(如单击/键入/双击/双击等)之前,可以使用“元素存在”活动修复大多数问题, 以便确认机器人是否能够检测到元素是否正确加载。
为了避免这种情况–
* 可以在“超时 ”字段中增加超时量 。确保使用配置值,并将配置文件中的变量和值作为字典键值对,参考REFramework中使用配置文件进行操作,并从常量表中获取值一样。* 如果使用的属性为“ WaitForReady”的活动,则尝试使用“无/完整”的设置。* 在对元素执行任何操作(例如,单击/键入/双击等)之前,请使用活动“元素存在”。
#4图片未找到问题
异常类型:Uipath.Core.ImageOperationException:找不到图像
此类问题的主要原因是,当从Orchestrator运行流程时,它以不同的屏幕分辨率(与可能用于开发自动化工作流程的屏幕分辨率)连接到远程环境(您的运行时机器人)。
在工作流程中,您可能已经使用了图像来单击它,但它不在远程屏幕的可见部分中,而是有滚动条……
为避免此类情况,请确保为orchestrator应用相同的屏幕分辨率设置,以使编排器打开RDP CONNECTION。
* 首先开发一个工作流程,以获取开发环境的屏幕分辨率设置。* 使用“拍摄屏幕快照”活动和“保存图像”活动来捕获开发环境的屏幕分辨率。* 检查保存的图像属性中的详细信息选项卡。注意深度,高度和宽度。* 登录到Orchestrator并更改机器人的运行时设置(分辨率宽度,高度和深度)。* LoginToConsole设置为false。在注销RDP的情况下,机器人将能够创建自己的新的单独会话。* 重新启动uipath服务(运行-> services.msc-> Uipath Robot->重新启动)
注意:确保从机器人机器注销,不要直接断开连接。
可以在Orchestrator运行时窗口或Robot UiPath.Settings文件中应用设置。前者将覆盖后者的设置。
#5保存下载文件的问题
对于许多Uipath开发人员来说,这是个很麻烦的问题。
以下是一些相关问题–
无法将文件保存到特定位置
文件另存为选择器不起作用
Type into 文件保存不起作用
在保存当前日期的文件时有一些问题
从IE下载文件时出现问题,因为无法检测到另存为工具栏
从Chrome下载文件时出现问题,因为它会强制下载
从Internet Explorer保存文件时选择下拉菜单另存为的问题
述所有问题都没有万能的解决方案,也取决于浏览器设置。
为了避免工作流中出现此类问题,应该检查以下内容
* 对于“另存为文件”选择器不起作用,因为选择器对于指向对话框的类值而言看起来不正确。确保检查saveas按钮的cls属性。* 对于输入路径时遇到的问题,可以使用path+”\”+document_name+”. extention”+”[k(enter)]” ,并启用SENDWINDOWMESSAGE属性,并禁用“模拟类型”;还要在DELAYBETWEENKEYS中设置一些时间戳,大约2000毫秒* 要保存具有今天日期的文件,请使用“filename” +”_”+now.tostring(“dd_MMM_yy”)+”.extension” –可以相应地更改日期格式* 对于与chrome保存位置有关的问题,请选中“在下载之前询问每个文件的保存位置”旁边的复选框。在浏览器设置中是否选择。Chrome的默认行为是自动将文件下载到当前设置的“下载”文件夹中。需要将Chrome浏览器的设置更改为在下载文件之前先询问位置
以上问题在Uipath开发过程中比较容易出现,当然还有更多的问题,也欢迎到
Uipath子论坛 留言探讨。
「RPAPlus」 | 专注RPA+AI 咨询
网友评论