新手课堂 - 可以直接用以检测的“眼睛”——获取文本与图片检测

应用登录成功了吗?页面加载完成了吗?界面弹出意外窗口了?
在界面操作过程中,我们只需要眼睛瞟一眼就能够当即作出判断。
因此我们可以举一反三:对于不长眼的家伙,想办法给安上眼睛就好了。
这里只介绍一下两只可以直接用以检测的“眼睛”:获取文本与图片检测。
1、获取文本

通过对控件的拾取,获取到控件的文本, 获取成功则返回值返回控件文本,获取失败则返回值为空字符串,都可存为变量供后面的步骤进行使用。也就是说这个组件在运行过程中是不会报错的,无论是否获取成功,都会返回相应的值。
获取文本的作用是获取控件的文本,但因为其特性,故而可以用来进行一定的检测。如下例,判断是否打开百度网页:
新手课堂 - 可以直接用以检测的“眼睛”——获取文本与图片检测
网站打开成功,则能获取到文本“百度一下”,将值赋给 lv_1,然后执行 If 分支,输出“打开成功”;
网站打开失败,则不能获取到文本,返回值为 '', 即:变量 lv_1='',然后执行 If 分支,显然为假,输出“打开失败”。

2、图片检测

如果获取文本无法拾取相关的控件文本,那么图片检测就不失为一个较方便的方法。
通过截取屏幕当中的图片,在运行过程中确定在当前屏幕中是否有截取的图片,如果图片检测一致,则返回值为 True,如没有检测到截取的图片则返回值为 False。

使用方法:点击【拾取】按钮,切换到需要截取图片的页面,等鼠标变为截屏的图标后,再开始截取图片。
新手课堂 - 可以直接用以检测的“眼睛”——获取文本与图片检测
目标属性:可以通过勾选“窗口标题”,在检测前会先激活该窗口,如去勾选则不执行激活窗口的操作。如果流程当中需要来回的切换不同的页面或系统,建议勾选,如流程中都是在一个页面中完成,可以去勾选。
另外,开启模糊匹配默认是勾选的,若检测不到图片,会通过 OpenCV 查找;不勾选,不会通过 OpenCV 查找。因此,针对 OpenCV 查找,有一个模糊匹配相似度设置,其默认值 0.85,值越大,图片检测越难,但准确率高;值越小,图片检测越易,但准确率低。

这里以检测是否登陆双录系统( http://122.112.200.222/login.action 用户名 / 密码:test001/111111)为例:
新手课堂 - 可以直接用以检测的“眼睛”——获取文本与图片检测
先执行登陆的操作,登陆后进行检测:对比登陆前后见面,可以发现登陆后左上角的图标在登陆前的页面中是不存在的(虽然有同样的图标,但文字的位置不一样,截取后的图片在登陆前不存在),拾取该该图标,将返回值输入到 If 分支的条件中,从而实现功能登录则输出登录成功,否则输出登录失败。
新手课堂 - 可以直接用以检测的“眼睛”——获取文本与图片检测

3、小结

通过这种检测,可以将检测的结果进行返回,从而判断是否执行下一个步骤,例如上面的双录系统登陆例子,可以将检测的结果返回,返回值为 True 那么继续下面查找或录入的操作,登录失败则可设计重新登陆或直接关掉网页的操作。
当然也可以应用在 Try 异常中,通过这种检测来判断出现的异常,从而进行相应的操作。
不过,可以使用获取文本来进行检测的话尽量不要用图片检测,毕竟获取文本的准确性更高,而图片检测显然是一个近视眼,从图片检测的【目标属性】中有“模糊匹配相似度”这么一栏就可见一斑,这样的眼睛还是得慎用。