【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

小胡哈 19天前 499

对于UiBot的相关问题,都欢迎留言提问,可本帖留言或GitHub提交Issues。

如果帮到了你,也请给我留个言说下是哪部分内容吧,谢谢。

本贴同步自GitHub笔记:https://github.com/HUHARED/HUHARED.github.io/tree/master/uibot_notes

我是直接将内容从GitHub复制过来的,且UiBot社区内的编辑器功能有限,因此如果发现有的内容格式很奇怪,请见谅,可以前往GitHub查看。


主要是将自己之前工作、学习过程中整理的本地笔记搬运到GitHub和UiBot社区中,在我认为值得分享的UiBot知识枯竭之前,会尽量保持至少2周更新一次。


关于本帖所在社区版块:个人尝试发帖,只能选择【开发问题、STORE、源码插件、对话机器人】四个版块,以及非UiBot社区注册用户看不到【教程学习、源码插件】两个版块的内容。

因此选择的【开发问题】版块,虽然我觉得【教程学习】版块更合适。

如果可以,希望审核人员考虑更改社区版块可见设置,以及给与【教程学习】版块发帖权限。


祝大家工作、学习愉快。


更新记录:

20220502-初次发布帖子;

20220503-补充来也UiBot认证相关思维导图;

20220504-补充「在目标中输入」命令,【系统消息】、【后台输入】、【模拟输入】三者之间的区别、适用情况;

20220510-增加:浏览器「打开」或「另存为」窗口的文件路径选择的一种实现方式;对于快速消失目标的选择方式;

20220514-增加UiBot相关教程(企业级流程模版、官方命令手册、官方开发者指南)、UiBot项目实施可能涉及技术的教程(SQL、正则表达式).

20220515-补充两个UiBot软件问题:单元测试中循环命令的报错、Excel显示即返回的错误。

20220519-补充鼠标点选日期的一个常见解决思路(「获取子元素」、「获取元素文本」命令结合使用)。

20220521-增加UiBot中?通配符的说明。



目录

1. 前言

这里是我的UiBot笔记,内容包括:

  • 我在工作、学习过程中遇到的疑难问题&解决办法;
  • 来也UiBot认证考试过程中,个人整理的考点、操作步骤,注意不包含考试答案;
  • RPA项目实施过程中,个人觉得有用的技能与教程;
  • 其他我觉得值得分享的东西。

适用范围:

  • 个人常用的UiBot软件是:Creator 5.6.2和5.5.6、Worker5.6.2和5.5.6;
  • 本笔记中的内容,如果没有特别说明,对于5.5.0及以后的社区版、企业版都是通用的。

本笔记的更新以GitHub为主,原因:

  • UiBot社区的检索功能不好用、很多计算机常用术语都是敏感词、回复没有通知、内容权利不受个人控制。

希望达成的目的:

  • 记录与展示个人的工作、学习成果,帮助职业发展;
  • 帮助与自己同样使用UiBot的程序员。

RPA行业还在高速发展中,如果随着时间发展,本笔记可以在此行业留下一些痕迹,帮助到一些工程师,那将会是一件十分有成就感的事情。

2. 一些UiBot软件使用技巧

2.1. 更改Creator【我的收藏】命令树下的命令顺序

Creator软件内是没有排序功能的,以及询问过来也支持人员,得到的答复也是无法排序,但经过研究,得出了排序的方法。

以我的企业版5.6.2为例(其他版本同理),步骤与解释:

  1. 打开「UiBotCreator安装目录\5.6.2\db\」文件夹

  2. 使用文本编辑器打开该文件夹下的favorite.db

  3. 该文件内的内容结构是这样的:

    a. 每一行的文本就是一个命令所应对的字典_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。 b. 以其中的「注释」命令来举例,将其格式化一下,方便观察结构:

    {    "_groupName" : "Base",    "_id" : "XlVzSWrPx3Ty5Atg",    "args" : 
        [
            {            "dataType" : "variable",            "defaultValue" : "Rem",            "desc" : "注释内容。",            "inputType" : "textArea",            "name" : "Rem",            "propName" : "注释内容"
            },
            {            "dataType" : "variable",            "defaultValue" : "",            "desc" : "需要显示的注释内容",            "inputType" : "textArea",            "name" : "sText",            "propName" : "注释内容"
            }
        ],    "commandDesc" : "用于给其他命令做注释说明,运行时没有任何效果。",    "commandName" : "注释",    "formatCode" : "Rem ",    "propsGroup" : 
        [
            {            "name" : "必选参数",            "value" : 
                [                "#sText"
                ]
            }
        ],    "srcCode" : "#Rem #sText",    "time" : 1627894027311,    "translateType" : 39,    "visible" : true}

    c. 其中"time"字段就表示当时收藏该命令的毫秒时间戳,使用UiBot内置的「Unix时间戳转换为时间」,「格式化时间」命令,可以看到这个整数所对应的就是2021-08-02 16:47:07,我当初收藏它的时间_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

  4. 那么我们只需要(先做好文件备份),在文本编辑器内,将希望排名靠前的命令字典的"time"字段整数改小,保存,关闭重开Creator,就可以了。(修改过程中如果觉得字典太长,挤在一行不方便,可以先复制字典文本到其他文本编辑器进行格式化,修改完成之后,再改为一整行的形式粘贴回去。)

举例,我将我特别常用的三个命令的"time"字段分别调整为了整数 2,3,1,修改前后截图如下:

(其中「调试中退出」、「pass」是我自定义的命令,不是官方内置命令,以及由于收藏的命令比较多,截图是拼接出来的,能够理解意思就行)

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

2.2. 一台电脑同时打开多个Creator或Worker

2.2.1. Creator

如果需要在两个项目之间复制粘贴代码,个人觉得最方便直观的方式,是同时安装安装不同版本的UiBot到不同文件夹,就可以实现同时打开多个Creator或Worker。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

打开每个目录中的「Creator.exe」,即可。

唯一发现的小问题,就是第二个打开的Creator无法显示最近的项目列表,手动打开需要处理的项目即可。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

2.2.2. Worker

Worker同理,通过这种方式,可以实现同一台同时运行多个程序(前提是程序之前的界面操作不会互相影响),提高电脑资源利用率。

2.3. 通配符的支持情况

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

我在UiBot的官方开发者指南、特征筛选器的提示界面中,都只看到「支持通配符 *」,但是其实 ?英文问号也是支持的。(至少5.6.X版本支持,其他版本我没测试)

使用更合适的通配符,可以在一些情况下更精准地选取到目标元素。

  • 通配符*:表示任意数量字符(0个或多个)
  • 通配符?:表示任意1个字符

3. 代码正确时,UiBot仍然报错的情况与解决方案

3.1. 单元测试中循环命令报错:尝试去索引一个null值 (全局 'LOCAL_STORAGE_TABLE_NAME')

UiBotCreator的5.6.X版本,在单元测试用遍历数组、遍历字典、计次循环这几个循环类型的命令,会报错 尝试去索引一个null值 (全局 'LOCAL_STORAGE_TABLE_NAME')

在其他版本未发现该问题,咨询来也支持人员也没什么好的解决办法,所以应该是软件问题。

因此在5.6.X版本编写程序时,避免在单元测试用使用「遍历数组、遍历字典、计次循环」命令。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

3.2. Excel读取数据,数组中显示的元素类型与实际元素类型不一致

UiBot命令手册——读取区域

UiBotCreator5.6.X版本,在Excel-读取区域、读取行、读取列命令中,增加了 显示即返回参数。

参考官方文档说明:

选择是,则返回内容与Excel单元格中显示的内容一致,且始终以字符串形式返回(当单元格内容有换行时,返回的内容会在首尾自动加上双引号);选择否,则返回内容会根据数据类型自动转换,如0.1返回数值0.1而不是字符串"0.1"

如果设置 显示即返回参数为「否」,

当我们打印数组,想看看数组中的元素时,会看到数组中所有元素的类型,看起来都是字符串。

但其实这是UiBot显示错误,当我们使用具体某个元素时,就会发现UiBot按照文档说明的那样,自动进行了类型转换,但是直接打印整个数组所显示的变量类型是错误的。

因此在5.6.X版本编写程序时,注意最好保持 显示即返回参数为默认的「是」,然后在使用数据时再根据自己的需求转换类型。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。


4. 来也UiBot认证相关思维导图

截至本部分内容编写,就我所知,来也目前的产品包括:

  • RPA
    • UiBot Creator,流程代码编辑器
    • UiBot Worker,流程运行工具
    • UiBot Commander,流程管理网站
    • UiBot Mage,AI功能平台
  • 对话机器人吾来(Chatbot)

对于上述产品,有三个来也进行考核与颁发的认证考试

  • RPA认证
    • RPA实施工程师认证
      • 以UiBot Creator的使用为主,同时涉及到UiBot Worker、UiBot Commander、UiBot Mage
      • 有初中高,三个级别
      • 认证界面
    • UiBot业务应用认证(我没考过这两个证书,不细说)
      • RPA审计机器人认证
      • RPA财务机器人认证
    • 智能自动化平合售前工程师认证 (初级)(我没考过这两个证书,不细说)
  • IDP认证
    • 以UiBot Mage的使用为主,同时涉及到UiBot Creator
    • 有初中,两个级别
    • 认证界面
  • Chatbot认证(我没考过这个证书,不细说)

我在个人的学习过程中,整理了两个思维导图,有的地方写得不够详细,但应该对尚未获得UiBotRPA实施高级认证、IDP中级认证的读者有一定帮助:

5. 部分常见场景的处理思路

5.1. 浏览器「打开」或「另存为」窗口的文件路径选择

以谷歌浏览器为例,在网页上传文件或下载文件的时候(如果浏览器设置了「下载前询问每个文件的保存位置」),会弹出标题为「打开」或「另存为」的文件选择窗口。

业务流程中有的场景,需要选择指定文件夹下的文件,或者将文件放到指定路径。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

我个人业务处理过程中,使用的方式是:直接将文件的完整路径(文件夹路径+文件名),填写到文件名输入框,Windows就会自动进行定位。

比如"D:\UiBot Files\file\XXXXX.pdf"、"D:\测试\新建文本文档.txt"。

这样就不需要修改窗口的地址栏,方便很多。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。


5.2. 对于快速消失目标的选择方式

网页处理过程中,也许某些提示文本、弹窗等在显示几秒种后,就会自动消失,此时进行目标选择的时候,可能来不及选取到它。

注意使用UiBot在选取目标的时候,屏幕左上角或右下角,会有当前鼠标位置和热键的提示,对于会快速消失的目标,常用的热键就是F2。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

选取目标的时候,按F2,可以延迟三秒抓取目标。

再具体点说:

  1. 启用目标选取(点击UiBotCreator内按钮或快捷键 Ctrl+1);
  2. 按F2,进行3秒延迟;
  3. 在3秒内进行人工操作,使待选取目标出现;
  4. 3秒计时结束后,正好待选取目标提示方框未消且目标选取的延迟结束,就可以进行选取了。


5.3. 鼠标点选日期

在项目实施过程中,有的时候会遇到需要选择具体日期,且日期无法通过文本直接输入,只能鼠标点击,对此介绍一种适用情况较多的处理思路。

5.3.1. 「获取子元素」、「获取元素文本」命令结合使用

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

第一个例子,这个日期选择框是使用HTML的Table相关标签组成的,通过UiBotCreator内置的UI分析器,我们可以看出来它的TBODY(TableBody)包含7个TR(TableRow)组成,每个TR包含7个TD(TableData)。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

需要注意的是,一般的每月日历表格中,每行会显示7天,第一行可能上月的22-31日,最后一行可能包含了下月的1-6日。

那么我们假设需要选择2022年5月5日,大概思路:

  1. 创建2个Boolean变量,分别用于标记是否找到了当月的第一日(称其为「月初标记」;是否找到了目标日期(称其为「寻找完成标记」)。
  2. 针对TBODY元素,使用「获取子元素」命令,获取包含多个TR元素的数组(称其为「TR数组」);
  3. 遍历TR数组,
    1. 针对每个TR元素,使用「获取子元素」命令,获取包含多个TD元素的数组(称其为「TD数组」);
    2. 遍历TD数组,针对每个TD元素,使用「获取元素文本」命令;
      1. 如果元素的文本为"1",表示我们找到了当月的第一天,月初标记设置为为真。否则继续循环处理;
      2. 如果月初标记为真,且元素文本为"5",说明就是我们要找的日期,点击该元素,寻找完成标记设置为真,退出循环;
    3. 如果寻找完成标记为真,则退出循环,否则继续下一次遍历;

由于这个网站不方便公开,所以就不放代码了,第二个例子会给出代码。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

第二个例子,可访问http://tools.2345.com/rili.htm进行测试,

这个日期选择框是一个有序列表(ol,ordered list)内包含了多个列表项(li),每个列表项表示一日。

思路和第一个例子差不多,代码如下:

 

Rem 填写年月日
arrRet = 返回年月日()
Rem 激活并重置谷歌浏览器窗口
Window.SetActive({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*-2345万年历 - Google Chrome","app":"chrome"}]})
Keyboard.Press("F5", "press", [],{"iDelayAfter":300,"iDelayBefore":200,"sSimulate":"simulate"})
Rem 拆分出来年月日。
年 = arrRet[0]
月 = arrRet[1]
日 = arrRet[2]
TracePrint(年&月&日)
点击年份(年)
点击月份(月)
点击日(日)
Function 返回年月日()
	输入时间 = Dialog.InputBox("输入1991-2049之间的日期,如2016-09-09","UiBot","2016-09-09",False)
	arrRet = Split(输入时间,"-")
	Return arrRet
End Function
Function 点击年份(年)
	年 = CInt(年)
	Mouse.Action({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"DIV","parentid":"wrap","css-selector":"body>div>div>div>div>div"}]},"left","click",10000,{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200,"bSetForeground":True,"sCursorPosition":"Center","iCursorOffsetX":0,"iCursorOffsetY":0,"sKeyModifiers":[],"sSimulate":"simulate","bMoveSmoothly":False})
	索引 = 年-1901
	Mouse.Action({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"LI","idx":索引}]},"left","click",10000,{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200,"bSetForeground":True,"sCursorPosition":"Center","iCursorOffsetX":0,"iCursorOffsetY":0,"sKeyModifiers":[],"sSimulate":"simulate","bMoveSmoothly":False})
End Function
Function 点击月份(月)
	月 = LTrim(月,"0")
	月 = CInt(月)
	Mouse.Action({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"DIV","parentid":"wrap","css-selector":"body>div>div>div>div>div","idx":1}]},"left","click",10000,{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200,"bSetForeground":True,"sCursorPosition":"Center","iCursorOffsetX":0,"iCursorOffsetY":0,"sKeyModifiers":[],"sSimulate":"simulate","bMoveSmoothly":False})
	索引 = 月-1
	Mouse.Action({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"LI","parentid":"select-month","idx":索引}]},"left","click",10000,{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200,"bSetForeground":True,"sCursorPosition":"Center","iCursorOffsetX":0,"iCursorOffsetY":0,"sKeyModifiers":[],"sSimulate":"simulate","bMoveSmoothly":False})
End Function
Function 点击日(日)
	月初标记  = False
    寻找完成标记  = False
    日 = LTrim(日,"0")
    arrElement = UiElement.GetChildren({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"OL"}]},1,{"bContinueOnError":False,"iDelayAfter":20,"iDelayBefore":20})
    For Each value In arrElement
        temp  = UiElement.GetValue(value, {"bContinueOnError": False, "iDelayAfter": 20, "iDelayBefore":20})
        TracePrint($PrevResult)
        temp = DigitFromStr(temp)
        TracePrint($PrevResult)
        If temp="1" And 月初标记 = False
            月初标记 = True
            TracePrint("找到月初。")
        End If
        If temp=日 And 月初标记 = True
            寻找完成标记 = True
            Mouse.Action(value, "left", "click", 10000, {"bContinueOnError": False, "iDelayAfter": 300, "iDelayBefore": 200, "bSetForeground": True, "sCursorPosition": "Center", "iCursorOffsetX": 0, "iCursorOffsetY": 0, "sKeyModifiers": [], "sSimulate":"simulate", "bMoveSmoothly":False})
            Break
        End If
    Next
    If 寻找完成标记  = False
        TracePrint("没有找到对应日期。")
    End If
End Function



6. UiBot代码相关知识

6.1. 「在目标中输入」命令,【系统消息】、【后台输入】、【模拟输入】三者之间的区别、适用情况

  • 模拟操作,指通过调用系统api mouseevent等实现鼠标操作,会实际移动光标
  • 系统消息,指发送鼠标消息到目标元素,不移动光标
  • 后台输入,可以理解为调用了一次元素的鼠标响应回调函数

下述顺序中,由上往下为底层到上层,越底层兼容性越好,上层有速度和精准的优势:

  1. 模拟
  2. 消息
  3. 后台

7. 项目过程中用过的命令库和脚本

7.1. Python脚本

待更新。

7.2. UiBot命令库

待更新。

8. UiBot相关教程

8.1. UiBot企业级流程模版

在新建项目的时候,除了「流程、命令库」,我们还可以看到「企业级流程模版」的选项,我认为如果能够理解官方所提供的企业级流程的一些要点,那么对于在中高复杂度项目中实现可靠的功能,提高个人RPA实施水平,是很有帮助的。

官方的使用指南可以在新建项目时看到,我就不放上来了。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

想要分享的是我自己对官方使用指南的梳理思维导图,内容中结合我个人的理解,解释了一个企业级流程涉及到哪些部分(变量、流程块、功能)、分别作用是什么。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

8.2. UiBot官方命令手册

UiBot官方命令手册

这个不是我自己总结出来的资料,只是觉得非常有用,所以放个链接。

目前更新到了6.0版本,比之前多了运行实例。

建议初学者浏览一遍,对各种命令的作用有个基本印象,这样在项目实施过程中,也许就能想到哪些命令可以解决自己的当前问题。

有较丰富RPA实施经验之后,这也是一份比较可靠的参考资料。

8.3. UiBot官方开发者指南

UiBot官方开发者指南

这个不是我自己总结出来的资料,只是觉得非常有用,所以放个链接。

初级、中级RPA实施工程师可以把官方的初级、中级开发者指南全部阅读一遍,可以了解到很多在实施过程中有帮助的技巧。

尤其是中高复杂度的项目中,掌握了流程调试、单元测试、版本控制、命令库、拓展插件等技能后,可以节省很多时间,使程序更可靠。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

9. UiBot项目实施可能涉及技术的教程

9.1. SQL

UiBot可以连接并操作多种常见数据库,中大型企业的RPA项目往往也会要求读写企业数据库,所以一个RPA工程师还是有必要掌握一定的SQL知识的。

以及目前就我个人的UiBot使用经验来说(至少UiBot5.6.2版本如此),UiBot操作SQL Server的时候,每次执行「执行SQL语句」命令,会自动的创建并提交一个事务,所以实际上无法进行较复杂的事务处理,所以这种情况下建议用UiBot调用Python脚本来执行复杂事务。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

关于SQL相关书籍,个人推荐《SQL基础教程(第2版)》[日] MICK 著。

本书的内容较浅,介绍了SQL的基本知识和常见数据库的区别,个人认为非常适合入门。

掌握了书中知识后,也足够应对大多数RPA项目的需求。

如果希望获取电子书,可自行在Z-Library等网站搜索下载,我只分享我自己学习过程中整理的笔记:

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

9.2. 正则表达式

正则表达式可以在很多情况下极大地方便文本处理,UiBot也支持正则表达式。

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

注意不同编程语言、软件对于正则表达式的支持情况是不同的,新手入门的话,我个人推荐这个教程:

learn-regex

正则表达式测试网站推荐(就是上述教程页面中的在线练习网站):

Regex101

以下是我学习过程中整理的笔记:

_【笔记分享】个人UiBot使用经验、笔记、技巧分享——20220521-增加UiBot中?通配符的说明。

10. 许可证

MIT License


最新回复 (11)
  • 小胡哈 14天前
    2

    更新记录:
    20220504-补充「在目标中输入」命令,【系统消息】、【后台输入】、【模拟输入】三者之间的区别、适用情况
  • 小胡哈 12天前
    3

    20220510-增加:浏览器「打开」或「另存为」窗口的文件路径选择的一种实现方式;对于快速消失目标的选择方式;

  • 小胡哈 8天前
    4
    20220514-增加UiBot相关教程(企业级流程模版、官方命令手册、官方开发者指南)、UiBot项目实施可能涉及技术的教程(SQL、正则表达式);
  • lu-001 7天前
    5
    插楼
  • 小胡哈 7天前
    6
    20220515-补充两个UiBot软件问题:单元测试中循环命令的报错、Excel显示即返回的错误。
  • 7
    过来,拜贴。感谢分享。
  • 小胡哈 3天前
    8
    20220519-补充鼠标点选日期的一个常见解决思路(「获取子元素」、「获取元素文本」命令结合使用).
  • lhui 3天前
    9
    学到了两招(Creator多开、显示即返回),谢谢!
  • 小胡哈 2天前
    10
    lhui 学到了两招(Creator多开、显示即返回),谢谢!
    不客气 :-) 
  • 小胡哈 2天前
    11
    日照华昱纺织 过来,拜贴。感谢分享。
    不客气 :-) 
  • 小胡哈 1天前
    12
    20220521-增加UiBot中?通配符的说明。
返回
发新帖