RPA与软键盘

在开发与银行相关业务的RPA中,经常会遇到使用软键盘输入密码的场景,而软件盘的类型很多,对于RPA开发来说,实施的困难也不尽相同。以下就针对银行软键盘的几种类型进行讨论,并给出已证明可行的几种解决方案。

1. 有软键盘,并可以通过HTML元素定位到字符位置

如中国建设银行

相对来说,中国建设银行的软键盘对于RPA来说,还是比较好识别的。可以直接通过识别软键盘元素就可以解决。代码如下:

注意点:

  1. 在输入密码之前,首先需要将密码字符串转为字符数组,然后循环,逐个输入。在点击软键盘中的元素时,可以在Selector中添加代码,以便click可以找到正确的元素位置。如下代码:
"<html title='中国建设银行 个人客户网上银行' /><webctrl aaname='"+item.ToString+"' parentid='keybordkeyboardBtn' tag='SPAN' />"

2. 如果在密码中存在大写字母(软键盘打开之后,默认都是小写字母),则需要点击软键盘上的"切换大小写"按键。判断某个字母是否是大写字母,只需要根据字母的ASCII码来判断即可,ASCII大于64小于91即为大写字母。在大写字母输入完毕之后,还需要将键盘切换为原来的小写字母键盘,以防止小写字母输入错误。

2. 有软键盘,但是也可以不使用软键盘输入

如重庆银行

重庆银行在密码输入时,既可以用软键盘输入,也可以使用键盘输入。但是如果使用软键盘输入时,它不想建行那样,可以通过HTML元素来定位字符,所以还需要寻找其他方式解决,但既然它可以直接通过键盘输入,那么在实施RPA的时候,完全可以直接通过type into控件来实现输入。代码如下:

注意点:

  1. 在输入用户名时候,需要将Options中的EmptyField选中,即在输入之前,先将输入框清空。
  2. 使用以下两个控件,是因为在输入密码之前,不能使用Options中的EmptyField属性,所以通过双击,然后再del的方式,清空之前的密码内容。

3. 有软键盘,并且使用软键盘输入密码

如重庆银行

此软键盘不能使用以下控件:

click、click Text、Click OCR text

原因:软键盘每切换一次,元素位置(id)就会变动,Selector找不到字符,或者就是OCR识别不准确。

解决方案: 可以通过Click Image控件,并且使用Switch控件,针对每一个字符都使用Click Image去点击。如果存在大写字母,则需要先使用切换大小写按键,然后输入点击输入字符,然后再切换回原来的小写字符。

下图是输入小写字母的情况:

输入大写字母情况

原文发布于微信公众号 - 瞎说开发那些事(jsj201501)

原文发表时间:2018-05-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端开发

你不知道的console.log

对于前端开发者,使用console.log() 次数绝对很多,但是大部分人认识的 console 对象还不是很全面,其实深入了解这些后,你会发现给开发过程带来很...

3194
来自专栏对角另一面

lodash源码分析之自减的两种形式

本文为读 lodash 源码的第六篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash

20510
来自专栏菩提树下的杨过

DateTime在ExtJs中无法正确序列化的问题

这几天在学习ExtJs + Wcf的过程中,发现一个问题,如果Class中有成员的类型为DateTime,即使我们正常标识了[DataMember],序列化成J...

19710
来自专栏非典型技术宅

两种通过Plist加载图片的方法及问题,九宫格的算法,字典转模型1. 序列帧动画实现2. 图片浏览器-两种加载plist的方式3. 图片浏览器-内存问题4 MVC简单介绍和类前缀5 应用管理-两种加载

1193
来自专栏数据小魔方

查询组合函数|index+match函数组合

今天跟大家分享的是一组查询组合函数——index+match函数组合! index和match函数是查询函数中非常厉害的组合,可以根据某单元格返回序号查找该单元...

3995
来自专栏WOLFRAM

用 Wolfram 语言绘制电子轨道

1425
来自专栏Jerry的SAP技术分享

Association, Composition and Aggregation in UI5, CRM, S/4HANA and C4C

比如UI5的转盘控件Carousel: 一旦转盘被析构,里面显示的page当然也没有继续存在的意义了,需要跟着被析构。

2995
来自专栏JetpropelledSnake

Vue学习笔记之计算属性和侦听器

模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。例如:

1003
来自专栏对角另一面

lodash源码分析之自减的两种形式

这个世界需要一个特定的恶人,可以供人们指名道姓,千夫所指:“全都怪你”。 ——村上春树《当我谈跑步时我谈些什么》 本文为读 lodash 源码的第六篇,后续...

2946
来自专栏全沾开发(huā)

使用box-shadow进行画图(性能优化终结者)

1542

扫码关注云+社区