zoukankan      html  css  js  c++  java
  • UiPath Level 1-Lesson 8. Advanced Citrix Automation

    学习大纲

    • 如何使自动化操作识别应用程序的不同状态
    • 如何使用Highlight活动
    • 如果在Citrix环境下打开某个应用程序

     

    1. 识别应用程序的状态

    对于基于图片的自动化,一个很容易被忽略的问题是,如何让程序知道在什么时候执行某个操作。比如等待某个应用程序或网页加载完成,或是等待某个进程结束。我们需要让UiPath知道应用程序的状态,以判断是否可以进行下一步操作。

    实例:在Citrix环境下,打开SAP的主页并登陆账号。

    分析:在本地电脑上可以直接使用录制工具,因为UiPath会等待元素加载完成才与之互动。但是Citirx环境相当于一张图片,UiPath无法直接访问Citrix上的各种元素。解决方法是,让UiPath模仿人是如何识别某个应用或者网页是否加载完成的。我们可以让UiPath寻找某个视觉元素,它可以表示应用或者网页的状态是完成加载的或者就绪的,比如等待某个图片或者按钮的出现。对于本例,最好的方法是等待网页标签上的加载图标消失,并被网站图标取代,这需要使用Find Image活动

    方法:

    1) 手动添加一个Find Image活动,选中加载完成后的网页图标。

    *Find Image活动可以停止执行进程,直到特定的图片被找到或者等待超时。

    2) 为了进行测试,添加一个Message Box活动,当图片找到时就会弹出提示。

    3) 回到Google首页运行程序。结果是提示框弹出,这和预期的不同,因为我们并没有打开SAP主页。

    4) 为了找出问题所在,我们可以使用Highlight活动。首先,设置Find Image活动的参数,使它输出一个UiElement类型的变量elmnt;接着在Find Image活动后面添加一个Highlight活动。

    Highlight活动可以高亮标示某个裁剪区域、元素或者Selector。这里我们将参数Element指定为Find Image活动的输出变量,将参数Color改为红色,将参数Highlighting Time设置为200(即2秒)。

    5) 运行程序,下图中的元素被标示出来了。为了使程序能正确识别网页的状态,我们可以去掉这个链接。重新运行程序,Message Box就不会弹出了。

    6) 添加一个Click Image活动来点击登陆图标。

    7) 在Log On窗口中,焦点默认落在User Name的文本框里。使用Tab键导航会比较便利。

    8) 添加一个Type Into活动,输入Email Address + 一次Tab + Password + 三次Tab + 一次Enter。Email和Password都可以用变量替换。

    思考:我们的程序可能会出现这样的问题,有时候Log In窗口还没有加载好,就已经开始进行Type Into的操作了,应该如何解决?

    一个解决方案是在Click Image活动和Type Into活动之间添加一个延时。但是这不是最优的解法,因为总会有加载的时间比设置的延迟要长的情况。更多情况下加载的时间会比设置的延迟更短,这就不必要的拖慢了程序的运行速度。最好的解决方案还是添加Find Image活动


     

    2. 打开Citrix上的应用程序

    1) 双击应用程序的图标

    添加Click Image活动,将ClickType参数改为双击。

    然而这种方法并不稳定。比如,在图标被选中的情况下运行程序,由于图标的背景色发生了改变,UiPath将找不到这个图标。

    解决方法是,可以在选取图标时不把背景色选进去。

     

    2) 为应用程序指定快捷键

    右键→属性→快捷键 (Shortcut Key)。设置的快捷键越复杂越好,以避免与已存在的快捷键冲突。

    设置好快捷键后,添加一个Send Hotkey活动,并把它指定给Citrix窗口。

     

    3) 运行命令

    如果要求更高,比如需要在运行应用程序时添加一些参数,还可以使用Windows的运行(Run)命令。

    实例:使用Notepad++打开text.txt文件。

    思路

    • 找到Notepad++应用程序所在的路径:在快捷方式的属性里复制路径。
    • 按下Win键+R键,打开运行窗口。如果Citrix版本不支持发送Win键+R键,将Citrix窗口全屏后再输入就可以了。

    在使用Win键+R键打开运行窗口时,我们打开的将会是本机的运行窗口而非远程电脑上的。

    使用Remote-Desktop应用程序发送特殊指令。视频里的Ctrix版本无法发送Win键,但是可以打开开始菜单。

      

      打开开始菜单后,输入CMD将打开命令提示符(Command Prompt)。我们可以输入应用程序的路径或者其他低级命令,以实现一些很有用的功能。

        

      

    方法

    • 添加一个Click活动点击最大化按钮。
    • 添加一个Send Hotkey活动发送Win键+R键。
    • 创建两个变量,变量app用来保存Notepad++的程序路径;变量args用来指定参数,此例中,参数为要打开的文本文件的路径。
    • 添加一个Type Into活动,输入app+" "+args,再发送一个回车键。
    • 如果需要,还可以添加一Click活动退出全屏。 

     


     

    3. 练习

    假设你在远程电脑上,通过双击打开某个应用程序的图标(注意考虑图标被选中和分辨率改变的情况)。

    思路

    当要找的图片有三四种可能性时,比较直接的方法是在Pick活动块里添加各种Pick Branch活动

    方法

    • 添加一个Pick容器,并在其中添加三个Pick Branch活动。
    • 在第一个Pick Branch活动的Trigger区域里,添加Image Exists活动并截取目标图标。在Action区域添加Click Image活动
    • 选中目标图标,在第二个Pick Branch活动的Trigger区域里,添加Image Exists活动并截取图标。在Action区域添加Click Image活动
    • 更改屏幕分辨率,在第三个Pick Branch活动的Trigger区域里,添加Image Exists活动并截取图标。在Action区域添加Click Image活动
    • 这样一来,不论UiPath在屏幕里找到了三个图片中的哪一个,Click Image活动都将应用于对应的图片。


     

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

    Send Hotkey

    Click

    Pick

    Pick Branch

    Image Exist:检查是否在指定的UI元素中找到了某个图像。参数Accuracy可以调整查找的相似度;最终输出一个布尔型变量。

  • 相关阅读:
    localhost和127.0.0.1及ip区别
    Linux常用命令大全
    百度搜红包相关代码(1)
    今天开博第一篇,呵呵
    杯具啊,中考
    新年感想
    【转】汇编语言基础
    margin与padding
    .net 中的Literal Label 控件、Literal 控件、Panel 控件和 Placeholder 控件
    HTML 5 中的新元素
  • 原文地址:https://www.cnblogs.com/TeresaMu/p/9915891.html
Copyright © 2011-2022 走看看