array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 UiPath Level 1-Lesson 4. Recording - 爱码网

学习大纲

  • 如何使用记录器 (recorders)添加用户界面活动
  • 如何自定义

 

1. 录制(Recording)功能

录制功能可以在自动化项目的最初创建一个Workflow的框架。

四种类型:

  • Basic:桌面应用程序,如记事本(Notepad)。
  • Desktop:桌面应用程序,如记事本(Notepad)。
  • Web:浏览器和网页app。
  • Citrix:虚拟机,远程桌面和Citrix环境。

基本操作:

  • 点击录制按钮,弹出上述四个选项,选择任一选项会弹出录制控制器,此处以Basic为例进行录制。
  • 点击Automatic Recorder开始录制。
  • UiPath Level 1-Lesson 4. Recording
  • 录制开始后,蓝色的矩形表示UiPath识别出的元素,单击这些元素可与之互动。
  • 以记事本为例,单击可编辑区域会弹出一个对话框,允许用户写入字符,选择特殊键值等。
  • UiPath Level 1-Lesson 4. Recording
    • Type Password:隐藏输入的内容。
    • Empty Field:输入前清空当前编辑区域的内容。
  • 按下Esc键可以使控制器弹出,单击Save & Exit或再按一次Esc键结束录制。
  • 录制完成,生成一个Recording Sequence。可以在属性面板中修改录制的活动。
  • UiPath Level 1-Lesson 4. Recording
    • 录制产生的图片不会影响程序运行,仅为了方便阅读。可以在下拉菜单UiPath Level 1-Lesson 4. Recording中更改或删除这些图片。
    • 截图自动保存为.png文件并存放在项目文件夹下的“.screenshot”文件夹中。

可录制和不可录制的信息:

  • 可录制信息
    • 鼠标左键单击按钮、复选框、下拉菜单等可点击的元素。
    • 在可编辑区域输入文字。
  • 不可录制信息
    • 键盘快捷键
    • 辅助按键,如Ctrl键。
    • 鼠标右击
    • 鼠标悬停
    • ……

注意:更改了显示设置而没有重新启动计算机的情况下,UiPath无法正确识别元素。


 

2. Desktop录制

Basic和Desktop都可以录制用户对桌面应用程序的操作。为了体现二者的区别,可以分别使用Basic和Desktop录制下面的操作:

  • 单击已经打开的记事本的可编辑区域,输入"Hello World!"。
  • 单击格式(Format)弹出下拉菜单,选择字体(Font)。
  • 在字体对话框中选择18号字体。

录制完成后观察两个Sequence的不同:

  • Desktop将所有的操作放入了三个Attach Window活动中,三个窗口分别是记事本窗口,格式(Format)下拉菜单,和字体对话框。
  • Basic只是记录了操作流程,并没有添加Attach Window活动。

总结 - Basic和Desktop的区别:

Basic 

  • 活动独立存在于简单的Workflow里。
  • 可能受到干扰。

Desktop

  • 活动嵌套在Attach Window活动的内部;
  • 不会出现干扰的问题;
  • 更复杂的Workflow。

* Uipath通过应用程序的名称、窗口的标题、当前打开的文件等信息识别出正确的窗口,但有时会出现这些信息完全一样的情况,比如打开两个未保存过的记事本程序。如果使用Basic录制,程序会在顶层的记事本上运行,而且可能产生错误。如果使用Desktop录制,就可以避免这些干扰,找到录制时使用的那个记事本。


 

3. 录制技巧

  • 输入的内容"Hello World!"可以改为变量。
  • 在下拉菜单UiPath Level 1-Lesson 4. Recording中选择Indicate on Screen可以选择其他的元素,比如把更改字体改为更改字号。
  • 按下F2可以暂停录制3秒钟,桌面右下角会出现倒计时,倒计时结束则恢复录制。F2在录制自动隐藏的菜单中的元素时非常实用。比如把打开字体对话框改为选择自动换行,为了不把点击格式(Format)下拉菜单这一步录制进去,可以先使用F2暂停录制。
  • 手动录制 (Manual Recording):在录制过程中按Esc键打开控制器,选择手工录制的功能;手工录制结束后,控制器会再次弹出,按Automatic Recorder键继续刚才的录制。
  • 手工录制可以实现下列操作下列操作:
    • 快捷键
    • 特殊键
    • 右击鼠标
    • 鼠标悬停
    • ……
    • 从应用程序中获取文本信息 (Text → Copy Text)
    • 查找元素和图片
    • 与剪贴板互动
  • Selector:每一个录制下来的行动都会有一个selector,在属性面板Target组下面可以找到它。Selector帮助UiPath找到正确的元素或屏幕。因此,运行录好的程序时,如果UiPath无法找到元素或出现类似的问题,可以检查Selector属性。
  • UiPath Level 1-Lesson 4. Recording
    • Edit Selector文本框里的是实际的Selector;Edit Attributes文本框里是相关的属性。
    • Attach to Live Element:如果某个元素的值是变化的,比如图中的$377就表示一个会发生变动的总金额,UiPath在元素改变后可能无法再找到它。此时单击Attach to Live Element,然后再次点击出现问题的元素,UiPath就会尝试去修复Selector。

 

4. Web录制

Web录制和Desktop比较相似:Desktop把所有录制的活动嵌套在几个Attach Window里,而Web把录制的活动嵌套在几个Attach Browser里,以避免其他浏览器页面的干扰。

实例:在Google Finance上查找一支股票在最近两个开盘日的点数,显示一条消息告诉用户是上涨了还是下跌了。

* 股票代码:TSLA,MSFT

添加UiPath谷歌扩展功能

可能出现的问题:

  • 如何让UiPath自动打开浏览器:添加一个Open Browser活动,把它内部的Do删掉,把录制好的Attach Browser活动中的Do拖进来。
  • 录制“后退”的时候会把当前网页的标题录进去。如果标题中包含特定的股票名称如TSLA,则查找另一支股票时会出现问题。解决方法是检查“后退”所在的Attach WIndow的Selector属性,取消勾选包含TSLA的Edit Attributes。
  • Get Text活动从网页上抓取的文本会保存在Generic Value型变量中(Td1, Td2),但UiPath无法直接运算Td1-Td2。比较快捷的方式是在公式Td1-Td2的前面加上0+,即0+Td1-Td2。公式以数字开头,Uipath会默认后面的Generic Value型变量也是数字;以文本开头则默认后面的Generic Value型变量也是文本。
  • Close Application活动放到Attach Window里,就可以关闭这个Attach Window所在的程序。
  • 修改Recording Sequence时,如果怕把它弄乱了,可以先复制一份出来。

 

5. 练习:

  1) 要求用户输入一段文本并询问保存文件使用的标题,在记事本中输入文本,设置字体样式为粗体16号字,另存为该文件为指定标题。

  *很简单的练习,在此不描述过程了。

  2) 要求用户输入一个城市名,打开浏览器,在Google.com搜索“weather in <city> ”并抓取温度数据显示在message box里。

  思路:

  • 添加一个Input Dialog活动,用来输出变量city。
  • 打开浏览器(推荐使用IE浏览器),导航到谷歌主页。
  • 使用录制工具的Web录制,在Controller中选择Open Browser,点击打开的IE浏览器页面。
    • 注意不要点击到浏览器的窗口栏。
    • 录制工具会弹出提示让你确认URL。
  • 在Controller中选择Type菜单中的Type,输入“weather in new york”。
  • 选择Type菜单中的Send Hotkey。点击浏览器页面,在下拉菜单中选择Enter键。
  • 选择Text菜单中Scrape→Screen Scraping,点击网页上的温度数值(生成Get Full Text活动)。
  • 在Open Browser菜单中选择Close Browser。
  • 单击Save & Exit退出录制。
  • 把录制得到的所有活动都放到Open Broswer活动的Do里。
  • 把刚才输入的new york修改为变量名city。
  • 用Message Box活动显示Get Full Text活动输出的变量,即抓取的温度数据。

 

*本课使用过的新活动、方法、函数等:

  • Open Browser
  • Attach Browser
  • Close Application
  • Close Tab
  • Get Full Text
  • Send HotKey

 

相关文章: