liu 发布的文章

      随着近几年Python热度不断提升,应用场景越来越多样化,这个开发语言备受青睐,Python的学习门槛相对较低,这让很多本不是学计算机出身的有志之士对Python产生了浓厚的兴趣。金蝶云星空强大的架构和开发平台,支持用Python开发,虽然说不上是最好的开发方式,但是也让金蝶云星空的开发多了一个开发思路,也进一步提高了金蝶云星空平台的开放性,C#插件开发虽然也比较方便灵活,但是这个传统的开发方式让许多金蝶云星空圈里面的非技术出身小伙伴对系统二开望而却步,强大的BOS平台和IronPython解释器引擎为系统二开带来了新的方向。


       比较遗憾的时候,官方没有太多关于Python插件开发教程和学习资料,让许多想学习Python插件开发的小伙伴也只能做一些少量的感受和尝试,很难进一步掌握和自主应用。

      小弟不才,也是凭着对Python脚本插件的好奇心和兴趣,逐步研究和使用Python脚本开发,虽然没有太大的成就,但是也小有心得,抱着技术交流与自我提升的心态,准备结合自己的心得和总结,规划一系列的Python插件入门讲解供大家参考和指正。

  今天先发第一篇,简单引入一下话题和大致课程规划。感兴趣的小伙伴来一波"三连",后续敬请期待。。。


一、Python简介

首先了解一下,Python是什么?

      Python语言,是一种面向对象、直译式计算机程序设计语言,Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。常见的一种应用情形是,使用python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写。

      Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。

      Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C语言、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。因此,很多人还把Python作为一种“胶水语言”(glue language)使用。使用Python将其他语言编写的程序进行集成和封装。

再了解一个概念:Python解释器

作用:运行文件(运行代码)

Python解释器的作用通俗理解,就是起到一个翻译的作用,让我们程序员所编写的代码计算机能读懂然后执行代码。

Python解释器分类

1.CPython
        CPython是使用最广且被的Python解释器。当我们从Python官方网站下载并安装好Python 2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。
2.IPython
        IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。
2.PyPy
        PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释,这里可以去了解一下解释和编译的区别),所以可以显著提高Python代码的执行速度。绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。
3.JPython
        JPython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
4.IronPython

        IronPython和JPython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。



对于Python解释器,大家可以去查资料对Python语言的运行原理做一个了解,我这里不过多介绍。

        言归正传,对Python的介绍就到这里,虽然CPython是使用最广且被的Python解释器,但是我们要学习的是金蝶云星空Python插件开发,这里用到的是IronPython,所以我们学习的并不是大家日常所了解的Python,而是Python插件开发。语法结构和Python是一样的,但是更多的开发思想还是和.NET更接近,API库用得更多也是金蝶云星空插件API。

二、金蝶云星空中的Python插件是什么?与C#插件有什么区别?

Python插件可以使用Python基础语法调用.NET的库来完成开发,这也是能用Python开发插件的基础。

理论上讲,C#能实现的插件开发,用Python都能实现,但是个人目前看来,Python能实现90%的C#插件开发,有一些C#语言特有的运行机制不能用Python代替,或者需要变通实现。

Python不能实现、必须用C#实现的服务端接口开发、执行计划定时任务开发、继承重写标准插件、其他C#特殊用法...

大部分情况下,Python和C#都能做,使用的时候也要根据具体情况理智选择,也不能为了用Python而用Python!

简单剖析,对比一下.NET与Python做开发的情况:

image.png

三、为什么要学Python插件开发?学了Python插件能带来什么好处?

  • 熟悉BOS的小伙伴已经发现了,强大的BOS平台灵活配置已经可以实现我们遇到的90%二开需求。

  • Python有一个最大的好处是,在BOS平台配置即可生效,方便做代码运维调整。

  • 在这个优点下,那么引入了Python的使用之后,可以将BOS的功能更加丰富,从90%扩大到实现99%的二开需求!

  • Python相对与其他编程语言来说,语法结构比较简单,更容易入门,对于没有代码基础或者代码基础薄弱,但是想做点开发的小伙伴来说,这是一个福音!

  • 对于公有云的系统,发布更新代码比较麻烦,有了Python,就可以轻松解决这个烦恼!

  • 对于已经上线运行的功能,要做开发更新升级,要协调时间重启服务,用了Python之后可以免重启,快速部署生效

  • Python在BOS中配置之后,存在于单据的元数据中元数据存储于数据库,备份和功能迁移更加方便。

  • ......


三、学习Python插件需要具备哪些基础?

金蝶云星空系统以及BOS平台:

  • 掌握BOS平台配置,熟悉BOS中的各种控件、业务模型、业务规则(值更新、实体服务规则、单据转换、反写等)。

  • 了解系统标准功能如何使用,标准功能大致是如何实现的,要二开一个功能,首先得知道改哪里。

  • 了解各种业务对象(单据、单据列表、基础资料、动态表单、报表等)。

  • 了解系统数据在数据库表中的存储关联逻辑,知道如何通过BOS查找单据对应的表结构。

  • 使用SQL的能力,最好能熟练使用SQL语句对系统的数据进行查询等操作。

可以先学习:星空开发工程师-初级

编程基础:

  • 有编程的逻辑思维,对基本的代码语法有所掌握(循环语句、条件语句、函数方法、数据变量、基本数据结构等等)。

  • C#编程基础:尽量有,实在不满足,可暂时跳过,但是会影响学习理解,以及后续能学到什么程度。

  • 星空插件开发基础,对星空的插件开发模式以及执行过程有一定了解。参考学习:插件介绍

  • Python语法基础,如果没有任何代码基础,一定要先学习Python语法基础

四、Python插件入门讲解大致内容规划

Python插件入门讲解-基本开发过程介绍
  • Python插件的基本开发过程

  • Python插件脚本代码"三部曲"

  • Python插件中语法注意事项

  • Python插件调试   

  • Python插件常见编译错误说明

Python插件入门讲解-插件进行数据操作

(非常重要)

  • 单据的实体构成介绍

  • Python插件中对实体数据包的操作

  • Python插件中对各字段类型的取数赋值操作

Python插件入门讲解-单据表单插件
  • Python表单插件基本代码模板示例

  • Python表单插件常用事件介绍

  • Python表单插件中如何对单据数据进行取值、赋值

Python插件入门讲解-单据列表插件
  • Python列表插件基本代码模板示例

  • Python列表插件插件常用事件介绍 

  • Python列表插件中如何获取单据数据

Python插件入门讲解-操作服务插件
  • Python服务插件基本代码模板示例

  • Python服务插件常用事件介绍 

  • Python服务插件如何读取单据 

  • Python服务插件校验器

Python插件入门讲解-简单账表服务插件
  • Python简单账表服务插件开发过程介绍

Python插件入门讲解-报表表单插件
  • Python报表表单常用事件介绍

Python插件入门讲解-单据转换插件
  • Python单据转换插件常用事件介绍

Python插件入门讲解-插件常用工具类分享

(完结篇)

  • Python插件中如何操作数据库执行SQL

  • Python插件生成单据,可根据实际情况放到各类型插件事件中调用

  • 更多使用工具类Python代码分享......

五、Python插件实践案例(持续更新中...)


作者:CQ周玉立

来源:金蝶云社区

原文链接:https://vip.kingdee.com/article/330000931540780032?productLineId=1&lang=zh-CN

著作权归作者所有。未经允许禁止转载,如需转载请联系作者获得授权。


整理一些自己实际工作中遇到的星空的一些问题以及开发分享,欢迎大家评论和拓展

贴子持续收录并更新,如果帮助到了您,辛苦点亮小红心,您的支持是我的动力

开发类

    二开

            新手入门-插件实操汇总

            https://vip.kingdee.com/article/64993872014591232?productLineId=1

            Python插件开发

            https://vip.kingdee.com/article/330000931540780032?productLineId=1

            在插件中实现自定义下推单据

            https://vip.kingdee.com/article/111145394893301504?productLineId=1&isKnowledge=2

            执行计划配置页面“参数”和“参数表单ID”用法。

            https://vip.kingdee.com/article/363691087040360192?productLineId=1&isKnowledge=2

            自定义单据编号规则并且在插件中使用

            https://vip.kingdee.com/article/116590344044577280?productLineId=1&isKnowledge=2

            报表增加二开字段案例

            https://vip.kingdee.com/article/12998?productLineId=1&isKnowledge=2

            系统集成-WebApi汇总贴

            https://vip.kingdee.com/article/471980764217898752?productLineId=1&isKnowledge=2

            从零开发自定义WebApi

            https://vip.kingdee.com/article/97030089581136896?productLineId=1&isKnowledge=2

            BOS插件示例代码

            https://vip.kingdee.com/article/22386?productLineId=1

            二开登录插件-登录时增加自定义校验逻辑

            https://vip.kingdee.com/article/181046036255779584?productLineId=1&isKnowledge=2

            金蝶云星空-开发进阶专题-合辑

            https://vip.kingdee.com/school/topic/96?productLineId=1

            开发常用案例-代码干货

            https://vip.kingdee.com/article/521039662178123008?productLineId=1

            星空常用表整理

            https://vip.kingdee.com/article/514761851557501952?productLineId=1

            Context-上下文常用字段

            https://vip.kingdee.com/article/511609148463727616?productLineId=1            

            读写系统参数

            https://vip.kingdee.com/article/96634027611535104?productLineId=1&isKnowledge=2

            OnShowConvertOpForm事件-处理(选单/下推)单据转换界面

            https://vip.kingdee.com/article/147715?productLineId=1&isKnowledge=2

            https://vip.kingdee.com/article/167361162282648320?productLineId=1&isKnowledge=2

            OnShowConvertOpForm事件--Python脚本应用

            https://vip.kingdee.com/article/284006203154626816?productLineId=1

            移动BOS开发与调试

            https://vip.kingdee.com/article/58235223363927808?productLineId=1&isKnowledge=2

            通过表单插件控制多个辅助属性必录

            https://vip.kingdee.com/article/54526652264285184?productLineId=1

            BeforeF7Select-过滤框插件开发

            https://vip.kingdee.com/article/292350748984485632?productLineId=1&isKnowledge=2

            单据转换插件--解析选单条件策略事件(OnParseFilter)

            https://vip.kingdee.com/article/492629179616123136?productLineId=1

            获取指定用户上下文

            https://vip.kingdee.com/article/538019479653891072?productLineId=1

            二开插件代码调用下推方法

            二开代码实现自动下推,跨单下推

            金蝶云星空BOS插件二开事件案例

            https://vip.kingdee.com/article/94751030918525696?productLineId=1&isKnowledge=2#13

            简单账表开发步骤详解

            https://vip.kingdee.com/article/45035?get_from=article-id&productLineId=1

            新版主页二开自定义卡片简单实例

            首页二开

            插件代码模拟点击按钮

            点击按钮

            四种ShowParameter示例

            https://vip.kingdee.com/article/158494475516452352?productLineId=1&lang=zh-CN

    BOS

            BOS平台整体学习路径

            https://vip.kingdee.com/knowledge/specialDetail/363716320510095360?productLineId=1

            BOS常见应用场景

            https://vip.kingdee.com/school/topic/215782721338020096?productLineId=31

            BOS平台入门

            https://vip.kingdee.com/article/57854870606429952?share_fromuid=1155&productLineId=1

            向下兼容,跨版本,无需升级体验新版本的BOS IDE

            云BOSIDE

            常用属性-合辑

            https://vip.kingdee.com/school/topic/317755316912115456?productLineId=39

            页面建模-合辑

            https://vip.kingdee.com/school/topic/317751542592337408?productLineId=39

            规则配置-合辑

            https://vip.kingdee.com/school/topic/317765896356154112?productLineId=39

            平台基础功能-合辑

            https://vip.kingdee.com/school/topic/317767990119091968?productLineId=39

            工作流设置大全-合辑

            https://vip.kingdee.com/school/topic/215793597738717440?productLineId=31            

            业务流平台-合辑

            https://vip.kingdee.com/school/topic/317775865562187008?productLineId=39

            套打平台-合辑

            https://vip.kingdee.com/school/topic/317770365856564480?productLineId=39

            二开案例.BOS表达式.检查文本中是否包含有空格或回车换行符

            https://vip.kingdee.com/article/186137455845004800?productLineId=1&isKnowledge=2

            金蝶云星空BOS平台导出数据字典

            https://vip.kingdee.com/article/478883119052019200?productLineId=1

            自定义设置快捷键

            BOS自定义配置操作快捷键

            单据输入物料,带出即时库存

            https://vip.kingdee.com/article/10579?productLineId=1

            如何根据上级辅助资料过滤下级辅助资料

            如何根据上级辅助资料过滤下级辅助资料

     

运维类

    操作类

            单据打开为查看状态的原因有哪些

            https://vip.kingdee.com/article/401903298380095488?productLineId=1&isKnowledge=2

            多版本客户端/BOS设计器安装说明

            云星空同时使用多个不同版本的客户端的安装说明

            用户密码输入错误次数过多被锁定,如何解锁

            用户密码解锁

            总账账表查询数据200W限制设置

            https://vip.kingdee.com/article/240420508754563072?productLineId=1

            审核过程中控制字段的可见与修改

            https://vip.kingdee.com/questions/7881/answers/11378?productLineId=1&isKnowledge=2

            禁用用户-自动取消分组许可

            禁用用户-自动取消分组许可

            基础资料自动分配

            https://vip.kingdee.com/article/8771?productLineId=1&isKnowledge=2

            金蝶产品试用流程

            金蝶产品试用流程

            多组织多角色下的权限应用及数据规则应用失效问题汇总

            https://vip.kingdee.com/article/474507505658486272?productLineId=1&isKnowledge=2

            安装补丁提示“windows无法打开此文件”

            Windows无法打开此文件

            单据界面自定义调整

            单据界面自定义调整

            用户打开报错"网址不正确"解决方法

            网址不正确问题

            基础资料控制类型

            https://vip.kingdee.com/article/14626?productLineId=1&isKnowledge=2&lang=zh-CN

            流程常见问题

            https://vip.kingdee.com/article/562958136995228160?productLineId=1&lang=zh-CN

    系统管理参数类

            固定资产参数设置说明

            固定资产参数设置说明

            成本管理参数设置(存货核算参数应用)说明

            https://vip.kingdee.com/school/topic/183151989644145520?productLineId=31

            应收应付管理参数详解

            https://vip.kingdee.com/article/56020233432928512?productLineId=1&isKnowledge=2

            组织间结算系统参数

            组织间结算系统参数

            总账系统参数介绍

            https://vip.kingdee.com/school/detail/164412304056938752?productLineId=31

            https://vip.kingdee.com/school/detail/6088?productLineId=1

            发票管理系统参数

            发票管理系统参数

            智能会计平台参数设置

            https://vip.kingdee.com/school/detail/622?productLineId=1

            https://vip.kingdee.com/school/detail/164431037244485888?productLineId=31

    后台类    

            执行计划相关贴子汇总

            https://vip.kingdee.com/article/34119?productLineId=1
            金蝶云星空-文件服务器配置指南

            https://vip.kingdee.com/article/13138?productLineId=1&isKnowledge=2

            文件服务器迁移(数据库脚本)

            https://vip.kingdee.com/article/171692?productLineId=1

            常用SQL.全流程跟踪

            https://vip.kingdee.com/article/261580718495866368?productLineId=1&isKnowledge=2

            云星空补丁安装异常排查方案

            星空补丁安装异常关键字排查方案

            工作流异常的几种解决办法

            https://vip.kingdee.com/article/478849682043824896?productLineId=1&isKnowledge=2

            如何查询数据中心id

            https://vip.kingdee.com/article/360909472341957888?productLineId=1&isKnowledge=2

            附件与文件服务

            https://vip.kingdee.com/school/topic/317769166118112000?productLineId=39

            性能运维与调优

            https://vip.kingdee.com/school/topic/311610661451622912?productLineId=31

            星空-工作流相关知识汇总

            https://vip.kingdee.com/article/59283217194651392?productLineId=1

            安装补丁提示:不能获取数据中心信息,日志显示:服务器返回内容不能被解码

            https://vip.kingdee.com/questions/8272/answers/11772?productLineId=1&isKnowledge=2

            安装部署跳过SSL检测

            https://vip.kingdee.com/article/134331119381867520?productLineId=1

            修改管理中心默认端口

            修改管理中心默认端口

            金蝶云星空数据库清理

            数据库大表清理

    集成类

            k3/PLM集成方案&部署指南

            https://vip.kingdee.com/article/154095?productLineId=1 

            老版本钉钉自建应用集成方案

            https://vip.kingdee.com/article/184278?productLineId=1

            银企平台常用资料

            https://vip.kingdee.com/article/107885147697168896?productLineId=8

            网上银行-银企配置

            银企配置

业务操作类

    通用类

            新手入门-全方位了解云星空

            https://vip.kingdee.com/school/topic/51609017830717952?productLineId=1

            前台业务操作应用学习-金蝶财务软件实操应用全教程

            https://vip.kingdee.com/school/topic/190838899248313600?productLineId=1

            全流程串讲+演示大纲

            https://vip.kingdee.com/school/detail/858?productLineId=30

            https://vip.kingdee.com/school/detail/3714?productLineId=1

            星空实施认证初级-企业版

            https://vip.kingdee.com/school/learnPath/193413835540524288?productLineId=30     

    财务会计类

            总账-快速入门

            https://vip.kingdee.com/school/topic/373424205829610240?productLineId=1
            总账-初始化

            https://vip.kingdee.com/school/topic/183151989644145478?productLineId=31
            凭证生成相关

            https://vip.kingdee.com/school/topic/183151989644145482?productLineId=31

            固定资产初始化

            固定资产初始化

            固定资产日常业务处理

            https://vip.kingdee.com/school/topic/183151989644145503?productLineId=31

            存货核算-出入库核算业务

            https://vip.kingdee.com/school/topic/183151989644145521?productLineId=31

            星空初级财务应用支持

            https://vip.kingdee.com/school/learnPath/183159699949302611?productLineId=31

            发票云管理参数及金税连接配置

            https://vip.kingdee.com/school/topic/205254496532912431?productLineId=31

            核销字段自动化配置

            https://vip.kingdee.com/article/377494447719485696?productLineId=1&isKnowledge=2

            企业日常的首付款退款如何操作

            https://vip.kingdee.com/school/detail/169828694276234752?productLineId=31

    供应链类

            常见销售业务流程

            https://vip.kingdee.com/school/topic/183151989644145537?productLineId=31    

            采购&库存专题

            https://vip.kingdee.com/school/topic/130051288221885696?productLineId=1    
            星空初级供应链应用支持

            https://vip.kingdee.com/school/learnPath/183159699949302612?productLineId=31
                                        


作者:雪地上的名字

来源:金蝶云社区

原文链接:https://vip.kingdee.com/article/518480895951406080?productLineId=1&lang=zh-CN

著作权归作者所有。未经允许禁止转载,如需转载请联系作者获得授权。


机器人流程自动化(Robotic process automation,简称RPA)是以软件机器人及人工智能(AI)为基础的业务过程自动化科技。

机器人流程自动化(RPA)系统是一种应用程序,它通过模仿最终用户在电脑的手动操作方式,提供了另一种方式来使最终用户手动操作流程自动化。



人类社会进入21世纪的第一个十年之后,全球企业大都面临着两个严峻的挑战:

一是人力成本的不断飙升带来了企业经营成本的不断增加;

二是业务的快速发展导致企业内部流程纷繁复杂,工作效率的提升跟不上业务的发展速度。因此,随着信息技术的日新月异,如何通过有效的技术手段降低企业的人力成本,以及不断提升业务流程的自动化程度和员工的工作效率,已然成为全球企业家们迫切需要思考并尽快解决的重大课题。在这一大环境和大背景下,机器人流程自动化便应运而生。


RPA 十大特性

RPA的核心是通过自动化、智能化技术来“替代人”进行重复性、低价值、无需人工决策等固定性流程化操作,从而有效提升工作效率,减少错误。

相对传统手工完成重复类工作,RPA流程自动化软件具有以下三方面价值。从业务层面来看,RPA致力于将繁琐、重复的流程实现自动化操作,并通过触达不同软件数据打通企业上下游业务,实现整条业务线自动化。



RPA自动化软件关键价值


从工作层面来看,传统软件在数据管理环节有一定缺失,且存在数据质量差、手工处理费时费力的痛点,RPA软件在满足自动化的基础上降低人力成本,减少人为失误,可以24小时不间断工作,将员工从低效工作中解放出来,以便处理更高阶的工作,利于企业创新。

从技术层面来看,RPA作为自动化流程软件可以嵌套在其他软件中完成部门重复类工作,也可以直接连接顶层软件而不侵入企业原有系统,增加软件系统稳定性。随着数字化时代的到来,利用高新技术来取代低效率的劳动力付出,是必然的发展趋势。

RPA产业链主要参与者有四大类:RPA厂商、技术合作伙伴、业务合作伙伴、渠道合作伙伴。小编直接上图,更清晰明了。



中国RPA产业链结构和产品图谱

借此机会,今天小编给大家推荐9个最佳开源免费的 RPA工具,可以私有化,不用担心数据丢失和泄露。希望对粉丝们有所帮助。同时轻轻的问候,深深的祝福,愿大家一帆风顺,二龙腾飞,三羊开泰,四季平安,五福临门,六六大顺,七星高照,八方来财,九九同心,十全十美,百事亨通,千事吉祥,万事如意。

全文大纲

  1. DrissionPage - 基于python的网页自动化工具

  2. robotframework - 是最专业、最先进的开源RPA工具之一

  3. UiAuto - 一款RPA(机器人流程自动化)流程设计工具.

  4. RPA- 是一个跨平台性非常好的开源RPA自动化软件

  5. rpastudiobook - 从0-1开始编写RPA设计器和机器人工具

  6. wechaty - 只需几行代码,您就可以拥有一个功能齐全的RPA工具

  7. taskt - 是一个免费的、开源的、有趣的流程自动化软件

  8. II-RPA - 是全面智能公司出品的一款RPA工具

  9. pbottle-rpa - 小瓶RPA 永久免费(个人版)RPA软件系统

DrissionPage - 基于python的网页自动化工具

Github:github.com/g1879/Drissi



背景

用 requests 做数据采集面对要登录的网站时,要分析数据包、JS 源码,构造复杂的请求,往往还要应付验证码、JS 混淆、签名参数等反爬手段,门槛较高,开发效率不高。 使用浏览器,可以很大程度上绕过这些坑,但浏览器运行效率不高。

因此,这个库设计初衷,是将它们合而为一,同时实现“写得快”和“跑得快”。能够在不同需要时切换相应模式,并提供一种人性化的使用方法,提高开发和运行效率。
除了合并两者,本库还以网页为单位封装了常用功能,提供非常简便的操作和语句,使用户可减少考虑细节,专注功能实现。 以简单的方式实现强大的功能,使代码更优雅。

以前的版本是对 selenium 进行重新封装实现的。从 3.0 开始,作者另起炉灶,对底层进行了重新开发,摆脱对 selenium 的依赖,增强了功能,提升了运行效率。

介绍

基于python的网页自动化工具。既能控制浏览器,也能收发数据包,还能把两者合而为一。可兼顾浏览器自动化的便利性和requests的高效率。功能强大,内置无数人性化设计和便捷功能。语法简洁而优雅,代码量少,对新手友好。

特性和亮点

强大的自研内核

本库采用全自研的内核,内置了 N 多实用功能,对常用功能作了整合和优化,对比 selenium,有以下优点:

  • 无 webdriver 特征

  • 无需为不同版本的浏览器下载不同的驱动

  • 运行速度更快

  • 可以跨<iframe>查找元素,无需切入切出

  • 把<iframe>看作普通元素,获取后可直接在其中查找元素,逻辑更清晰

  • 可以同时操作浏览器中的多个标签页,即使标签页为非激活状态,无需切换

  • 可以直接读取浏览器缓存来保存图片,无需用 GUI 点击另存

  • 可以对整个网页截图,包括视口外的部分(90以上版本浏览器支持)

  • 可处理非open状态的 shadow-root

亮点功能

除了以上优点,本库还内置了无数人性化设计。

  • 极简的语法规则。集成大量常用功能,代码更优雅

  • 定位元素更加容易,功能更强大稳定

  • 无处不在的等待和自动重试功能。使不稳定的网络变得易于控制,程序更稳定,编写更省心

  • 提供强大的下载工具。操作浏览器时也能享受快捷可靠的下载功能

  • 允许反复使用已经打开的浏览器。无须每次运行从头启动浏览器,调试超方便

  • 使用 ini 文件保存常用配置,自动调用,提供便捷的设置,远离繁杂的配置项

  • 内置 lxml 作为解析引擎,解析速度呈几个数量级提升

  • 使用 POM 模式封装,可直接用于测试,便于扩展

  • 高度集成的便利功能,从每个细节中体现



案例截图

收发数据包

本示例演示用SessionPage已收发数据包的方式采集 gitee 网站数据。

网址:
gitee.com/explore/all

这个示例的目标,要获取所有库的名称和链接,为避免对网站造成压力,我们只采集 3 页。

打开网址,按F12,我们可以看到页面 html 如下:



从 html 代码中可以看到,所有开源项目的标题都是class属性为'title project-namespace-path'的<a>元素。我们可以遍历这些<a>元素,获取它们的信息。

同时,我们观察到,列表页网址是以页数为参数访问的,如第一页 url 为
gitee.com/explore/all?,页数就是page参数。因此我们可以通过修改这个参数访问不同的页面。

示例代码

from DrissionPage import SessionPage

# 创建页面对象
page = SessionPage()

# 爬取3页
for i in range(1, 4):
    # 访问某一页的网页
    page.get(f'https://gitee.com/explore/all?page={i}')
    # 获取所有开源库<a>元素列表
    links = page.eles('.title project-namespace-path')
    # 遍历所有<a>元素
    for link in links:
        # 打印链接信息
        print(link.text, link.link)

输出:

小熊派开源社区/BearPi-HM_Nano https://gitee.com/bearpi/bearpi-hm_nano
明月心/PaddleSegSharp https://gitee.com/raoyutian/PaddleSegSharp
RockChin/QChatGPT https://gitee.com/RockChin/QChatGPT
TopIAM/eiam https://gitee.com/topiam/eiam

以下省略。。。

robotframework - 是最专业、最先进的开源RPA工具之一

Github:github.com/robotframewo




介绍

Robot Framework是最专业、最先进的开源RPA工具之一。它能够帮助企业以经济高效的方式提供丰富的业务流程自动化服务。能够支撑组织实施、运行企业级机器人应用程序,并智能地处理复杂的业务流程。

Robot Framework能够大大简化业务运营、改善了IT基础设施、减少了工作量与成本,同时还能提高企业的整体灵活性,具备良好的可扩展性,可以为企业建立虚拟员工、能够很容易地与其他自动化工具集成,使业务流程自动化。

案例截图





UiAuto - 一款RPA(机器人流程自动化)流程设计工具.

Gitee:gitee.com/legion-spider



介绍

UiAuto 是览众独立开发的一款RPA工具,致力于减少人员处理重复性任务的时间,为客户提供高效的解决方案。通过它帮助企业解决业务流程自动化难题,主要用户处理标准、重复、繁琐、大批量的工作任务。RPA应用以更低的成本、更快的速度和更高的质量进行全天候服务,极大减少人为从事规律可循的机械性工作,释放员工创造力、提升员工满意度。

基础组件介绍



  • 开始:标记流程开始。

  • 条件:根据上游流程执行结果,选择下游支路执行且支持多选;存在多条线路可执行时,按从判断条件的顺序执行。

  • 循环:纵向锚点连接的流程线为主干,横向锚点连接的流程线为旁支,先循环执行旁支再执行主干。

  • 异常:异常组件的上游组件发生异常时,则执行异常组件的下游线路,否则不执行。

  • 等待:等待组件的下游线路执行完成,流程才会继续往下执行。

  • 子流程:执行另一个流程。

  • 常规类型(蓝色或白色圆角矩形):蓝色:普通常规类型,几乎所有功能组件都是常规类型,对所有全局变量可读,并且可返回一个新的变量。白色:脚本常规类型,一种高级的需要编写代码的常规类型,可以对所有全局变量进行读写,也可随意删减。

  • 结束:标记流程结束。

系统截图







RPA- 是一个跨平台性非常好的开源RPA自动化软件

Github:github.com/A9T9/RPA



介绍

UI.Vision是一个跨平台性非常好的开源RPA自动化软件。适用于Microsoft Windows,Mac和Linux操作系统。既可以作为桌面上的独立客户端运行,也可以作为Web浏览器中的插件运行。在桌面客户端独立运行时,可以模拟各种输入(如键盘和鼠标)并完成特定任务。在Web浏览器中支持Mozilla Firefox、Google Chrome或Edge的插件。

并且非常易用,提供了可视化UI测试以及浏览器自动化命令控制UI的功能。不要求学习如何开发脚本,只要一个点击式的界面即可驱动它。 值得强调的是UI.Vision通常被认为符合RPA领域的最高数据保护标准。





rpastudiobook - 从0-1开始编写RPA设计器和机器人工具

Gitee:gitee.com/rpa_ai/rpastu



介绍

近几年来,国内技术社区关于RPA的讨论很多很多,而且呈增长趋势,以Uipath、Blue Prism、Automation Anywhere等RPA类社区最为明显。RPA的热潮已经在国内外掀起,从整个行业来看,绝大部分的企业都会选择使用RPA来节省成本,提高效率,但本身使用RPA还是要花费一定成本去购买,并且可能需要专门的实施人员以及运维人员来实施运维等,相对来说这也是一笔不算小的费用,再加上一些大企业在企业内部完全推广开来这就使成本增加了不少。

并且从目前情况来看,不管是国内还是海外都对RPA备受关注,照着目前的形势发展,RPA的厂商远远不够支持众多企业的使用。这就会造成市场空白以及供给不足的现象,与其花费成本来购买厂商的RPA,不如自己动手来写一个RPA,开发完成后的RPA不仅可供企业内部使用,还可以推广到其他企业,发展更多的用户。

案例截图













wechaty - 只需几行代码,您就可以拥有一个功能齐全的RPA工具

Github: github.com/wechaty/wech




介绍

Wechaty是一个用于聊天机器人制造商的RPA(机器人过程自动化)SDK,它可以帮助您用JavaScript、Python、Go和Java的6行代码创建机器人,并提供跨平台支持,包括Linux、Windows、MacOS和Docker。

Wechaty提供开箱即用的支持,用于将即时消息帐户转换为聊天机器人所需的常见功能。您可以轻松地自定义和扩展Wechaty,以创建一个适合您需求的聊天机器人。


Github Star 17.9k

taskt - 是一个免费的、开源的、有趣的流程自动化软件

Github:github.com/saucepleez/t


动图封面


介绍

Taskt(以前称为sharpRPA)基于.NET 框架的C#,是一个免费的、开源的、有趣的流程自动化软件。它提供了易用的操作界面,无需编码或使用最少的命令(无代码、低代码方法)即可实现自动化机器人的创建。

Taskt最显著的优势是它的屏幕记录器,记录器具有多种记录功能,可以记录各种用户活动,从而根据记录信息创建机器人脚本。此外,它还包含一个带有拖放机制的可视化脚本生成器,在“所见即所得”设计器中中设计机器人模型。它还提供了数十个命令,如自定义代码执行,图像识别和OCR等。

案例演示


动图封面



动图封面


II-RPA - 是全面智能公司出品的一款RPA工具

Gitee:gitee.com/rpaii/II-RPA



介绍

II-RPA 是全面智能公司出品的一款RPA工具。它基于智能化数据处理业务模型,运用自主开发的自然语义分析引擎、逻辑计算单元、算法建模单元、图像识别等技术,通过模拟人对统一业务系统的各环节业务操作,进行逻辑判断和智能化操作结合人工智能的应用实现工作流程中的自动化。

流程机器人是一个模拟人进行逻辑判断和操作应用的软件程序。它结合人工智能的应用实现工作流程的自动化,主要由两部分能力组成,一部分是软件应用的操作能力,模拟人进行软硬件的操作;另一部分是人工智能的能力,模拟人类进行语义识别、图像识别、逻辑判断等。流程机器人通过两部分能力的组合在应用系统上辅助人类完成复杂的业务流程。

通俗点说,可以用流程机器人,以无代码方式,通过拖动窗口,输入信息,实现一些爬虫啊,自动化办公啊,自动操作系统的一系列功能,

凡是那种每天都要在电脑上操作的重复,量大的工作,都可以用这个工具自动完成,

案例截图





  1. pbottle-rpa - 小瓶RPA 永久免费(个人版)RPA软件系统

Github:github.com/leoxiaoping/





介绍

小瓶RPA 永久免费(个人版)RPA软件系统。 像挂QQ一样使用简单的RPA软件,显著降本增效 & 工作100%准确 & 非侵入式集成。同时支持浏览器web应用和客户端应用的操作流程自动化。




小瓶RPA优势

  • ① 基于AI图像识别技术,纯图像驱动,真正安全无侵入。

  • ② 自主底层研发、可深度行业底层定制,可解决有难度的自动化问题。

  • ③ 支持 NodeJS,Python等社区资源, 数以万计第三方功能包,最大化生态。

  • ④ 绿色、轻巧、便捷,免安装,可脱网运行,软件包大小约50M。

  • ⑤ 无登录和注册,个人版永久免费软件,真正的降本增效。

软件架构



发布于 2024-02-09 12:14・IP 属地上海



技术分享

293 篇文章1 订阅

订阅专栏



 


在当今数字化时代,机器人流程自动化(RPA)成为了企业数字化转型的重要组成部分。RPA是一种基于规则的软件技术,可以自动执行重复性、高度规范化的业务流程任务。


与传统的自动化技术相比,RPA具有更高的灵活性和可扩展性,同时还能够大幅度提高企业效率和降低成本。


然而,很多人对RPA和人工智能(AI)产生了混淆。事实上,虽然两者都属于数字化技术范畴,但它们的本质是不同的。与AI不同,RPA是一种基于规则的机器人技术,需要事先编写规则来指导机器人执行任务。


01 RPA到底是什么?

RPA:全称“Robotic Process Automation”,中文叫机器人流程自动化),是指用软件自动化方式模拟人工完成计算机终端的操作任务,让软件机器人自动处理大量重复的、基于规则的工作流程任务。


其优势和价值主要体现在无编码、学习成本低、开发周期短;非侵入式,对现有IT架构基本无影响;提升工作质量,减少重复人工操作,可7x24小时不间断工作;安全性高,减少人为失误;解放人力,释放人员从事更具有创造性的工作内容,降本增效。


RPA能将重复的工作流程自动化完成,不再需要人工来耗费大量的时间和精力完成。


02 RPA能做什么?

那些你不想做的枯燥工作,也许真的可以不做。重复化、标准化的工作都可以让RPA机器人帮你完成。 


RPA通过模拟人工手动操作键鼠,自动处理规则清晰、批量化的高频业务。它适用于企业内具有明确业务规则、结构化输入和输出的操作流程,例如读取邮件、对账汇总、检查文件、生成文件和报告等枯燥、重复、标准化的工作,都可以让RPA机器人代为完成。 


RPA能够轻松集成在任何系统上,跨系统处理数据。不仅简化了操作流程,提高了数据处理效率和准确度,还可有效避免人为失误,规避业务流程中数据被人为篡改的风险。


通过RPA可以减轻员工的工作量,将员工从枯燥、重复的数据搬运中释放出来,让他们专注于更具创造性的工作,成长为复合型人才,更好地利用数据,为企业创造更多价值。 


03 对比传统企业自动化工具的三大优势

RPA无需复杂的编程知识,只要按步骤创建流程图,即使不懂编程的普通员工也能使用RPA自动执行业务,大大降低了非技术人员的学习门槛。


RPA可根据预先设定的程序,由RPA软件机器人模拟人与计算机交互的过程,实现工作流程中的自动化,提高业务效率,减少人力成本和人为失误。


RPA有着灵活的扩展性和“无侵入性”,是推动企业数字化转型的中坚力量。企业无需改造现有系统,RPA便可集成在原先的遗留系统上,跨系统跨平台自动处理业务数据,有效避免人为的遗漏和错误。


RPA机器人自动化工作原理及涉及领域


RPA的工作原理基于图像识别、自然语言处理(NLP)、屏幕抓取等技术,它可以模拟人类在计算机上的操作,如打开应用程序、输入数据、点击按钮、复制粘贴、数据提取等,从而实现自动化执行特定的任务。


目前RPA最先开始在企业中发展的几个行业主要在于银行证券、政务部门、电商企业、电信通讯、IT保险、供应链等。按行业来说,金融行业RPA渗透率最高,按企业来说,靠近财务、客服及运营的部门RPA使用面最广。常见涉及的业务有:


1、财务税务:财务对账,发票报销,税务申报、发票开具等


2、人力资源:薪酬发放,入职离职,简历筛选等


3、电商企业:库存管理,订单汇总,价格监测、店铺数据等


4、供应链:订单采购,物流管理,售后服务等


5、自媒体:图文发布、视频发布、热点生成、素材创作等


6、企业推广:信息发布、品牌回帖、知道问答、批量留言评论、行业数据分析等


7、运维管理:行业数据分析、网站数据分析、公司运营数据分析等


8、网站推广:内容批量更新、外链批量发布、链接批量检测、400批量提交等


9、教育行业:招生、出勤、会务、教务排课、成绩、人资及财务、查询考生信息并且自动批量汇总与整理等




RPA常用工具框架?


当前RPA的开源市场中,备受推荐的框架有:Robot Framework、Taskt、UI.Vision、OpenRPA和TagUI。


以下是这5个开源框架在低代码、可读性、跨平台、开发语言、以及开源协议等方面的对比。




(1)Robot Framework RPA


https://github.com/robotframework/robotframework


Robot Framework是最专业、最先进的开源RPA工具之一。它能够帮助企业以经济高效的方式提供丰富的业务流程自动化服务。


(2)Taskt


https://github.com/saucepleez/taskt


Taskt(以前称为sharpRPA)是一个免费的、开源的、有趣的流程自动化软件。它提供了易用的操作界面,无需编码或使用最少的命令(无代码、低代码方法)即可实现自动化机器人的创建。


Taskt最显著的优势是它的屏幕记录器,记录器具有多种记录功能,可以记录各种用户活动,从而根据记录信息创建机器人脚本。此外,它还包含一个带有拖放机制的可视化脚本生成器,在“所见即所得”设计器中中设计机器人模型。它还提供了数十个命令,如自定义代码执行,图像识别和OCR等。


(3)UI.Vision


https://github.com/A9T9/RPA


UI.Vision是一个跨平台性非常好的开源RPA自动化软件。适用于Microsoft Windows,Mac和Linux操作系统。


(4)OpenRPA


https://github.com/open-rpa/openrpa


OpenRPA是当今RPA市场上最好的免费工具之一,具备可拖拉可视化界面,非常成熟,非常易用,可以用于任何规模大小的企业。


(5)TagUI

https://github.com/aisingapore/TagUI


TagUI 是一个跨平台的,支持命令行和可视化的RPA解决方案,用于自动执行键盘、鼠标操作。TagUI支持以类似自然语言的语法编写脚本,提升了无代码体验。


 


总结:

感谢每一个认真阅读我文章的人!!!


作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。




软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。




 


          视频文档获取方式:

这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

————————————————


                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

                        

原文链接:https://blog.csdn.net/2301_76643199/article/details/138911399


在最近两年中,RPA加上AI,即智能自动化流程,已经成为频繁讨论的话题,特别是在企业和机构的数字化转型过程中。自动化与智能化成为了提高效率的关键手段,而RPA便是迈向这一未来的起始步骤。可以将RPA视为人体的躯干神经系统,而AI则相当于大脑。AI的角色在于引入智能化处理,而RPA的作用则是模拟人类与软件系统的交云动,通过自动化软件来执行业务流程。RPA软件机器人能够识别应用程序界面上的数据,并且能够像人类一样操作这些应用程序。它们遵循既定规则与其他系统互动,执行各种必要的重复性任务。RPA本身融合了AI元素,它基于人工智能和自动化技术,按照预设的流程和规范与现有系统交互,以完成既定的任务。

RPA目前已成为一项关键技术,它在提升工作效率和降低成本方面扮演着重要角色。通过减少业务流程中的错误、处理时间、开支以及不必要的操作,我们能够显著优化系统的工作流。数据表明,RPA的实施有潜力将成本削减30%到50%,这对于增强组织的整体效能来说,是一个显著的提升。RPA的灵活性也值得一提,它能够处理包括进程复制、Web数据抓取在内的多种任务。因此,投资于RPA的应用,无疑是一个具有高回报的决策。

5个最佳开源RPA框架

当前RPA的开源市场中,备受推荐的框架有:Robot Framework、Taskt、UI.Vision、OpenRPA和TagUI。

以下是这5个开源框架在低代码、可读性、跨平台、开发语言、以及开源协议等方面的对比。

(1)Robot Framework RPA

https://github.com/robotframework/robotframework

Robot Framework是最专业、最先进的开源RPA工具之一。它能够帮助企业以经济高效的方式提供丰富的业务流程自动化服务。能够支撑组织实施、运行企业级机器人应用程序,并智能地处理复杂的业务流程。

Robot Framework能够大大简化业务运营、改善了IT基础设施、减少了工作量与成本,同时还能提高企业的整体灵活性,具备良好的可扩展性,可以为企业建立虚拟员工、能够很容易地与其他自动化工具集成,使业务流程自动化。

(2)Taskt

https://github.com/saucepleez/taskt

Taskt(以前称为sharpRPA)是一个免费的、开源的、有趣的流程自动化软件。它提供了易用的操作界面,无需编码或使用最少的命令(无代码、低代码方法)即可实现自动化机器人的创建。

Taskt最显著的优势是它的屏幕记录器,记录器具有多种记录功能,可以记录各种用户活动,从而根据记录信息创建机器人脚本。此外,它还包含一个带有拖放机制的可视化脚本生成器,在“所见即所得”设计器中中设计机器人模型。它还提供了数十个命令,如自定义代码执行,图像识别和OCR等。

Taskt为开发人员提供了在线示例和测试网站,您可以根据实际需要选择尝试使用现有的DEMO或者自己配置案例。所有的手册、指南和操作方法都可以在Taskt的网站上找到。

(3)UI.Vision

https://github.com/A9T9/RPA

UI.Vision是一个跨平台性非常好的开源RPA自动化软件。适用于Microsoft Windows,Mac和Linux操作系统。既可以作为桌面上的独立客户端运行,也可以作为Web浏览器中的插件运行。在桌面客户端独立运行时,可以模拟各种输入(如键盘和鼠标)并完成特定任务。在Web浏览器中支持Mozilla Firefox、Google Chrome或Edge的插件。并且非常易用,提供了可视化UI测试以及浏览器自动化命令控制UI的功能。不要求学习如何开发脚本,只要一个点击式的界面即可驱动它。 值得强调的是UI.Vision通常被认为符合RPA领域的最高数据保护标准。

(4)OpenRPA

https://github.com/open-rpa/openrpa

OpenRPA是当今RPA市场上最好的免费工具之一,具备可拖拉可视化界面,非常成熟,非常易用,可以用于任何规模大小的企业。这个解决方案拥有非常活跃的社区,并且积极在为项目做贡献,软件更新非常频繁。

OpenRPA使用C#和JavaScript技术开发,提供的功能包括:远程管理、状态支持、分析仪表板、调度和规划功能等,能够与各种云提供商集成。

(5)TagUI

https://github.com/aisingapore/TagUI

TagUI 是一个跨平台的,支持命令行和可视化的RPA解决方案,用于自动执行键盘、鼠标操作。此RPA解决方案被认为是最佳远程RPA开源平台,是远程RPA工作的理想开源项目,能够在不停机的情况下更新,并且TagUI是一个基于云的应用程序,可以从世界任何角落进行管理,最多可支持15个用户,支持从各种终端设备(PC、智能手机或平板电脑)管理多个会话。并且,它在本地用户的设备上运行时不会存储任何公司数据,保障信息安全。

TagUI还是Microsoft Word、Excel的RPA自动化产品,为Microsoft Power Automate提供了附加组件。它还为人工智能和大数据应用开发提供基于Python和R语言的开发包。TagUI支持以类似自然语言的语法编写脚本,提升了无代码体验。

在企业迈向数字化的转型旅程中,采用自动化和智能化技术是一条不可回避的道路,其中RPA展现出了巨大的应用潜力。开源RPA框架的主要优势在于其开放性,能够与多种不同的工具结合,激发创新。每个开源框架都有其独特的优势,但同时,利用这些框架也需要一定程度的开发投资。因此,在进行信息化改造时,技术的选择必须考虑企业的具体情况。至于RPA的成功应用,其关键指标在于能否在特定的应用领域实现成本的降低和效率的提升。