需求内容

根据表格中给出的信息(提供了机构名称、机构代码、用户信息、具体操作等),选择系统管理 → 用户信息管理 → 用户维护,点击用户所在的机构,在机构中选择需调整的用户,进行相应的增删改操作。

关键步骤截图如下:

例如,表格给出的信息是 [01001] 分行营业部的某个员工需要进行修改操作,那么需要在目录中依次点击

[00000]银行 → [FR001总行] → [01]常州分行 → [010010]常州分行营业部 → [01001]分行营业部

然后在右侧的用户信息表中选中相应员工进行修改操作

难点说明

通过 F12 查看页面元素,可以看到下图中红框部分只有 [00000 银行] 这一个节点源码

点击 [00000 银行] 前面的’+’号,再次查看源码,发现多了下图红框中的内容,也就是说,这棵银行路径树的源码是根据鼠标点击动态加载的,我们无法提前知道所有的源码。

深入观察

继续点击并不断观察页面元素的变化,我们得到一些规律:

1. 每次点击后都会给当前节点下的所有子节点分配 id,id 号码是在父节点以及父节点的兄弟节点都依次标完号以后按顺序进行标号。下图详细解释了这种分配 id 的模式,[00000]银行的 id 为 1 号,我们先点击它,得到的三个子节点 [FR001] 总行、[FR002]大丰村镇银行、[FR003]上海村镇银行分别分配为 2、3、4 号;然后我们点击 [FR003] 上海村镇银行,得到的一个子节点 [03] 上海村镇银行分配为 5 号;我们点击 [03] 上海村镇银行,会得到四个子节点(注意:[03888]上海清算中心和 [03999] 上海管理机构也是子节点),分别分配 6、7、8、9 号,以此类推。如果每次点击的顺序不一样,那么最终的节点 id 号也会完全不同。

2. 带有文件夹标记的节点,需要对前面的’+‘号执行点击操作,如果点击的是 a 标签对应的元素,即上图中的第一个红框,将不会弹出下面的子节点。且’+‘号对应的元素比较好找,只要找到 a 标签对应的元素节点,然后顺藤摸瓜找到它所对应的父节点 li 下的第一个 span 标签的元素,就是我们要找的’+’号。

3. 每一个节点元素的 class 属性很容易理解,在根节点的元素([00000] 银行)为 level0,下面的子节点([FR001] 总行、[FR002] 大丰村镇银行、[FR003] 上海村镇银行)都为 level1,以此类推。

解决思路

根据第一个观察,我们可以设计一个动态标号算法,假设我们已经提前知道具体的点击顺序,那么就可以计算出按照这个点击顺序得到的每个节点的 id 所分配的号码是多少,然后得到每一次点击的 xpath 代码,通过 xpath 查找到元素后依次执行 click() 方法即可。但这种算法的难度较大,可以作为思考题。结合第二和第三个观察,我们可以设计一个更为简便的算法,同样假设已经提前知道了具体的点击顺序,并且依次存储在一个列表中,由于点击顺序一定是按照一层一层的节点往下的结构,所以这个列表中的每一个元素的 class 属性也一定是按照 level0、level1 的顺序排列,再结合一开始给定的机构名称、机构代码信息,我们就可以定位到所有的 a 标签对应的元素,再结合第二个观察,就能找到需要点击的’+’号。需要注意的是,最后用户所在的机构一定是不带有文件夹标记的节点,直接对定位到的 a 标签对应的元素执行点击操作即可。

运行片段

以 [02031] 为例,运行函数并依次执行点击操作,效果如下:

RPA 案例:银行综合对账系统权限更改中的难点解决的更多相关文章

  1. 银行综合储蓄业务系统,水平为学了一年C语言

    银行综合储蓄业务系统 #include <stdio.h> #include<string.h> int acccunt = 0; char name[10],pw[10]; ...

  2. Android开发之深入理解Android 7.0系统权限更改相关文档

    http://www.cnblogs.com/dazhao/p/6547811.html 摘要: Android 6.0之后的版本增加了运行时权限,应用程序在执行每个需要系统权限的功能时,需要添加权限 ...

  3. Python 小案例实战 —— 简易银行存取款查询系统

    Python 小案例实战 -- 简易银行存取款查询系统 涉及知识点 包的调用 字典.列表的混合运用 列表元素索引.追加 基本的循环与分支结构 源码 import sys import time ban ...

  4. 26、生鲜电商平台-RBAC系统权限的设计与架构

    说明:根据上面的需求描述以及对需求的分析,我们得知通常的一个中小型系统对于权限系统所需实现的功能以及非功能性的需求,在下面我们将根据需求从技术角度上分析实现的策略以及基于目前两种比较流行的权限设计思想 ...

  5. Android 6.0 开发人员对系统权限的使用与练习(Permissions Best Practices)

    Permissions Best Practices 在安装的过程中,用户非常easy忽略权限请求. 假设一个用户相应用感觉沮丧或者操心泄漏个人信息,那么这些用户就会不用他或者卸载它. 怎样规避这个问 ...

  6. Java生鲜电商平台-商家支付系统与对账系统架构实战

    Java生鲜电商平台-商家支付系统与对账系统架构实战 说明:关于生鲜电商平台,支付系统是连接消费者.商家(或平台)和金融机构的桥梁,管理支付数据,调用第三方支付平台接口,记录支付信息(对应订单号,支付 ...

  7. Java生鲜电商平台-RBAC系统权限的设计与架构

    Java生鲜电商平台-RBAC系统权限的设计与架构 说明:根据上面的需求描述以及对需求的分析,我们得知通常的一个中小型系统对于权限系统所需实现的功能以及非功能性的需求,在下面我们将根据需求从技术角度上 ...

  8. linux系统权限(基本权限)

    linux的系统权限:r--  100 4-w- 010 2--x  001 1 [root@localhost ~]# ll -d dir drwxrwxrwx root root Nov : di ...

  9. 解析大型.NET ERP系统 权限模块设计与实现

    权限模块是ERP系统的核心模块之一,完善的权限控制机制给系统增色不少.总结我接触过的权限模块,以享读者. 1 权限的简明定义 ERP权限管理用一句简单的话来说就是:谁 能否 做 那些 事. 文句 含义 ...

随机推荐

  1. docker容器的基本使用

    ### Docker中镜像的基本使用以及Docker的基本使用 #### 1.Docker的安装 ```先进入终端,然后使用以下命令:sudo apt-get updatesudo apt-get i ...

  2. MVC(实战二:网址映射)

    一.默认网址 Global.asax 默认网址配置: 此时打开编辑页面,效果如下: ?后面包含name参数和Email参数  在Global中修改网址路由: public static void Re ...

  3. java之关键字static

    static简单概述 static 关键字的基本使用,它可以用来修饰的成员变量和成员方法,一旦用了static关键字修饰,那么这样的内容不再属于对象而是属于类,凡是本类的对象都共享使用同一份.我们可以 ...

  4. python3 连接 zookeeper

    zookeeper的增 删 改 查 watch监听. from kazoo.client import KazooClient import time,os import timeit os.chdi ...

  5. Prism_Commanding(2)

    Commanding 除了提供对要在视图中显示或编辑的数据的访问之外,ViewModel还可能定义可由用户执行的一个或多个动作或操作.用户可以通过UI执行的动作或操作通常被定义为命令.命令提供了一种方 ...

  6. Easyui 去除jquery-easui tab页div自带滚动条

    去除jquery-easui tab页div自带滚动条 by:授客 QQ:1033553122 测试环境 jquery-easyui-1.5.3 需求场景 打开tab页面时,自动载入一个iframe页 ...

  7. 从0系统学Android--2.6 Activity 的最佳实践

    从0系统学Android--2.6 Activity 的最佳实践 本系列文章目录:更多精品文章分类 本系列持续更新中.... 实践中的技巧 2.6.1 知晓当前是在哪个 Activity 这个其实很简 ...

  8. 转战物联网·基础篇08-例说MQTT协议各控制报文

      前面讨论了MQTT协议的控制报文的格式,下面分别举例探讨各个控制报文的详细内容. 01.CONNECT – 连接服务端   客户端到服务端的网络连接建立后,客户端发送给服务端的第一个报文必须是CO ...

  9. easyui textbox setValue以及setText的使用技巧

    1.先赋值Value,后赋值Text $('#Name').textbox('setValue', "11");$('#Name').textbox('setText', &quo ...

  10. django验证码captcha

    官方文档 https://django-simple-captcha.readthedocs.io/en/latest/usage.html#installation 使用命令安装pip instal ...