CN112527435B - 浏览器操作方法及系统 - Google Patents
浏览器操作方法及系统 Download PDFInfo
- Publication number
- CN112527435B CN112527435B CN202011443718.XA CN202011443718A CN112527435B CN 112527435 B CN112527435 B CN 112527435B CN 202011443718 A CN202011443718 A CN 202011443718A CN 112527435 B CN112527435 B CN 112527435B
- Authority
- CN
- China
- Prior art keywords
- page
- browser
- acquiring
- structure diagram
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 230000008569 process Effects 0.000 claims abstract description 18
- 238000010586 diagram Methods 0.000 claims description 79
- 238000004590 computer program Methods 0.000 claims description 9
- 239000000758 substrate Substances 0.000 claims 5
- 239000000523 sample Substances 0.000 claims 1
- 238000012545 processing Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004801 process automation Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种浏览器操作方法及系统,涉及计算机技术领域。该方法的一具体实施方式包括:获取针对浏览器的执行命令,所述执行命令中包括至少一个自动化流程及浏览器标识;针对每个所述自动化流程:根据所述自动化流程,生成至少一个自动化操作单元,每个所述自动化操作单元包括至少一个基础操作;根据所述基础操作,对所述浏览器标识对应的浏览器进行操作。该实施方式能够减少执行浏览器操作工作所需的人力成本、效率较高且不易出错。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种浏览器操作方法及系统。
背景技术
浏览器是用来检索、展示以及传递网络信息资源的应用程序。浏览器建立起用户与网络之间的关联。随之而来的是,很多工作需要基于浏览器来完成,很多这类工作具有重复性较高或规则性较强的特点。如果由相关用户人工来处理这类工作,往往需要耗费较高的人力成本,效率较低且容易出错。
发明内容
有鉴于此,本发明实施例提供一种浏览器操作方法和装置,在处理基于浏览器完成的工作中,能够减少所需的人力成本、效率较高且不易出错。
第一方面,本发明实施例提供了一种浏览器操作方法,包括:
获取针对浏览器的执行命令;所述执行命令中包括至少一个自动化流程及浏览器标识;
根据所述自动化流程,生成至少一个自动化操作单元;每个所述自动化操作单元包括至少一个基础操作;
根据所述基础操作,对所述浏览器标识对应的浏览器进行操作。
可选地,所述根据所述自动化流程,生成至少一个自动化操作单元,包括:
将所述自动化流程拆分成至少一个自动化操作单元;
分别获取每个所述自动化操作单元对应的至少一个基础操作;
将所述至少一个基础操作放入操作队列中;
所述根据所述浏览器标识、所述基础操作对所述浏览器进行操作,包括:
从所述操作队列中取出当前操作,对所述浏览器标识执行所述当前操作。
可选地,在所述分别获取每个所述自动化操作单元对应的至少一个基础操作之后,还包括:
确定所述基础操作是否存在对应的页面元素;
若有,则获取所述页面元素;
所述将所述至少一个基础操作放入操作队列中,包括:
将所述基础操作及所述基础操作对应的页面元素放入所述操作队列中;
所述从所述操作队列中取出当前操作,对所述浏览器标识对应的浏览器执行所述当前操作,包括:
从所述操作队列中取出当前操作及所述当前操作对应的页面元素;
对所述页面元素执行所述当前操作;所述页面元素位于所述浏览器所打开的页面中。
可选地,所述将所述基础操作及所述基础操作对应的页面元素放入所述操作队列中,包括:
按照所述基础操作的执行顺序,将所述基础操作及所述基础操作对应的页面元素放入所述操作队列中;
所述从所述操作队列中取出当前操作及所述当前操作对应的页面元素,包括:
按所述操作队列的放入顺序,从所述操作队列中取出所述当前操作及所述页面元素。
可选地,所述方法还包括:
获取所述浏览器所打开的页面;
解析所述页面,获取所述页面中的至少一个页面元素;
所述确定所述基础操作是否存在对应的页面元素,包括:
从所述至少一个页面元素中,查找是否存在与所述基础操作对应的页面元素。
可选地,所述获取所述页面中的至少一个页面元素,包括:
获取所述页面中的至少一个属性;
根据所述属性,获取所述页面中的至少一个页面元素。
可选地,所述获取所述页面中的至少一个页面元素,包括:
获取所述页面中的多个标签;
根据所述标签,生成所述页面的结构简图,所述结构简图包括多个节点,所述结构简图的根节点用于表征所述页面;
根据所述结构简图,生成至少一条树状路径;所述树状路径用于连接所述结构简图中的两节点;
根据所述树状路径,获取所述页面中的至少一个页面元素。
可选地,所述根据所述结构简图,生成至少一条树状路径,包括:
根据所述结构简图,生成完整树状路径,所述完整树状路径用于连接所述结构简图中的第一节点及第二节点,所述第一节点为所述根节点;
所述根据所述树状路径,获取所述页面中的至少一个页面元素,包括:
根据所述完整树状路径,获取所述第二节点对应的页面元素。
可选地,所述根据所述结构简图,生成至少一条树状路径,包括:
根据所述结构简图,生成相对树状路径,所述相对树状路径用于连接所述结构简图中的第三节点及第四节点,所述第三节点对应的页面元素具有唯一的标识方式;
所述根据所述树状路径,获取所述页面中的至少一个页面元素,包括:
根据所述相对树状路径,获取所述第四节点对应的页面元素。
可选地,所述根据所述相对树状路径,获取所述第四节点对应的页面元素,包括:
获取所述第三节点对应的页面元素的标识方式;
根据所述相对树状路径及所述标识方式,获取所述第四节点对应的页面元素。
可选地,在所述根据所述标签,生成所述页面的结构简图之后,还包括:
若所述结构简图的同一层级中存在多个相同类型的节点,则分别用不同的序号标注所述多个相同类型的节点;
所述根据所述结构简图,生成至少一条树状路径,包括:
根据标注后的结构简图,生成所述树状路径。
可选地,所述将所述至少一个基础操作放入操作队列中,包括:
按照所述至少一个基础操作的执行顺序,将所述至少一个基础操作放入所述操作队列中;
所述从所述操作队列中取出当前操作,包括:
按所述操作队列的放入顺序,从所述操作队列中取出当前操作。
第二方面,本发明实施例提供了一种浏览器操作系统,包括:
机器人代码模块,用于获取针对浏览器的执行命令;所述执行命令中包括至少一个自动化流程及浏览器标识;
驱动模块,用于根据所述自动化流程,生成至少一个自动化操作单元,每个所述自动化操作单元包括至少一个基础操作;根据所述基础操作,对所述浏览器标识对应的浏览器进行操作。
第三方面,本发明实施例提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例所述的方法。
第四方面,本发明实施例提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:根据针对浏览器的执行命令,自动生成与执行命令对应的基础操作,并根据生成的基础操作对浏览器执行相应操作。相比人工直接操作浏览器的方法,在处理浏览器的相关工作中,能够减少所需的人力成本、效率较高且不易出错。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明实施例可以应用于其中的示例性系统架构图;
图2是本发明的一个实施例提供的一种浏览器操作方法的流程的示意图;
图3是本发明的一个实施例提供的一种自动化流程结构示意图;
图4是本发明的一个实施例提供的一种浏览器操作系统的架构示意图;
图5是本发明的一个实施例提供的另一种浏览器操作方法的流程的示意图;
图6是本发明的一个实施例提供的又一种浏览器操作方法的流程的示意图;
图7是本发明的一个实施例提供的一种页面的结构简图的示意图;
图8是本发明的一个实施例提供的一种浏览器操作装置的结构示意图;
图9是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明;其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1示出了可以应用本发明实施例的视频相似度的确定方法或视频相似度的确定装置的示例性系统架构100。
图1示出了可以应用本发明实施例的浏览器操作方法或装置的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备101、102、103为安装有浏览器的终端设备,终端设备101、102、103可以是手机、笔记本、平板电脑、膝上型便携计算机等等。
终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103通过网络104将存储的视频发送给服务器105。
服务器105将一个完整的任务,拆分成多个执行命令,每个指令命令中包括至少一个自动化流程,并将多个执行命令分配给终端设备101、102、103执行。
终端设备101、102、103接收针对浏览器的执行命令,所述执行命令中包括至少一个自动化流程;根据所述自动化流程,生成至少一个自动化操作单元,每个所述自动化操作单元包括至少一个基础操作;根据所述基础操作,对终端设备上的浏览器进行操作。
需要说明的是,本发明实施例所提供的浏览器操作方法一般由终端设备101、102、103执行,相应地,浏览器操作装置一般设置于终端设备101、102、103中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2是本发明的一个实施例提供的一种浏览器操作方法的流程的示意图。本发明实施例提供了一种浏览器操作方法,如图2所示,包括:
步骤201:获取针对浏览器的执行命令;执行命令中包括至少一个自动化流程及浏览器标识。
执行命令中包含原本需要人工在浏览器页面上要做的业务操作。可在系统中预存人工做的业务操作与自动化流程的对应关系,以将人工要完成的业务操作转化为相应的自动化流程。
由于系统中可能部署或打开多个浏览器,通过浏览器标识可唯一确定一个浏览器,并基于执行命令对浏览器标识对应的浏览器自动进行操作。
步骤202:根据自动化流程,生成至少一个自动化操作单元;每个自动化操作单元包括至少一个基础操作。
在系统中预存自动化操作流程、自动化操作单元及基础操作之间的对应关系,以将人工要对浏览器执行的业务操作依次转化为自动化操作流程、自动化操作单元及基础操作。
步骤203:根据基础操作,对浏览器标识对应的浏览器进行操作。
图3是本发明的一个实施例提供的一种自动化流程结构示意图。如图3所示,本发明实施例提出三层级抽象模型来实现浏览器操作流程的自动化。三层模型的底层是基础操作,中间层是自动化操作单元,顶层为自动化流程。
基础操作是浏览器的基本操作单元。至少一个基础操作组成一个自动化操作单元。至少一个自动化操作单元组成一个自动化流程。每个基础操作既可以有对应的操作元素,也可以没有对应的操作元素。基础操作包括但不限于:移动鼠标、点击鼠标(左键、右键、双击)、键盘输入等。基础操作均可调用操作系统底层接口来实现。
自动化操作单元可以由至少一个基础操作构成。本发明实施例中将基础操作组合成为自动化操作单元,采用队列HandleQueue存储基础操作事件,并在调用执行execute()方法时,才会将每个自动化操作单元中的基础操作事件按序执行,以确保每个自动化操作单元作为一个整体执行完毕,再执行后续单元。自动化操作单元类型及包含的基础操作如下:
1.自动化操作单元为:页面元素点击,对应的基础操作为:移动鼠标至指定页面元素上->点击鼠标。
2.自动化操作单元为:页面元素输入,对应的基础操作为:移动鼠标至指定输入框元素上->点击聚焦输入框->进行键盘输入。
3.自动化操作单元为:页面元素选择,对应的基础操作为:移动鼠标至指定单选按钮、下拉框等页面选择元素上->点击鼠标进行选择。
4.自动化操作单元为:异常处理,包括:未找到元素、查找元素超时、不可见、不可输入、未被选中等异常的处理及日志记录。
自动化流程是由多个自动化操作单元串联组成。例如:某个需要人工操作的登录流程,步骤为:
步骤S01:打开某个网站。
步骤S02:在网站页面上输入用户名、密码.
步骤S03:点击登录按钮.
上述人工操作的登录流程可对应于一个自动化流程,该自动化流程包括的自动化操作单元为:
自动化操作单元1:打开浏览器,自动化程序通过浏览器驱动打开浏览器。
自动化操作单元2:打开网站,输入网站地址打开网站(页面元素输入)。
自动化操作单元3:输入登录信息,输入用户名、密码(页面元素输入)。
自动化操作单元4:提交登录,点击登录按钮(页面元素点击)。
机器人代码按序串联自动化操作单元执行上述步骤,完成该业务流程的自动化。
在本发明实施例中,通过将人工要对浏览器执行的业务操作依次转化为自动化操作流程、自动化操作单元及基础操作,实现了系统自动对浏览器进行处理。因此,可以解决由于人工手动对浏览器进行处理,而造成的人力成本耗费较高,效率较低且容易出错的问题。
图4是本发明的一个实施例提供的一种浏览器操作系统的架构示意图。本发明实施例提供了一种浏览器操作系统的架构,如图4所示,本发明实施例通过使用浏览器驱动与浏览器进行交互,以实现整个自动化流程。总体结构分为三部分:机器人代码(Commander)、驱动(Driver)、浏览器(Browser)。
机器人代码可用于执行上述步骤201,机器人代码可以理解为自动化流程的指挥官,用于发送指令给浏览器驱动,指令包含原本需要人工在浏览器页面上要做的所有业务操作。机器人代码可采用python、java、c#等语言实现,机器人代码与驱动之间使用RESTfulAPI接口通过http协议进行通信。
驱动可用于执行上述步骤202及步骤203。驱动与浏览器交互时,按照机器人代码发出的指令,一步步实现操作的自动化。首先,通过调用操作系统底层接口启动浏览器驱动程序,开启进程,该进程将作为机器人代码指令发送的服务方。然后,机器人向浏览器驱动服务发送HTTP请求,驱动服务解析HTTP请求,打开浏览器,并返回浏览器标识。该浏览器标识用来作为后续自动化操作的必要标识,后续对浏览器的操作需携带此浏览器标识。在已打开的浏览器基础上,完成后续的自动化操作。
图5是本发明的一个实施例提供的另一种浏览器操作方法的流程的示意图。本发明实施例提供了一种浏览器操作方法,如图5所示,包括:
步骤501:获取针对浏览器的执行命令,执行命令中包括至少一个自动化流程及浏览器标识。
步骤502:将自动化流程拆分成至少一个自动化操作单元。
步骤503:分别获取每个自动化操作单元对应的至少一个基础操作。
可在系统中预存自动化流程与自动化操作单元之间的对应关系,以及自动化操作单元与基础操作之间的对应关系。根据上述对应关系,确定出执行命令所对应的基础操作。
步骤504:将至少一个基础操作放入操作队列中。
队列采用先进先出的出对顺序,即最早进入队列的元素才能最先从队列中删除。操作队列可采用如HandleQueue等。
步骤505:从操作队列中取出当前操作,对浏览器标识对应的浏览器执行当前操作。
一般地,按照至少一个基础操作的执行顺序,将至少一个基础操作放入操作队列中;并按操作队列的放入顺序,从操作队列中取出当前操作。如此,可保证基础操作可依次按照顺序执行,减少由于基础操作的执行顺序出错,而使执行命令无法正常执行的风险。
在本申请实施例中,借助操作队列来存放并取出多个基础任务,可保证在多执行命令并发执行的环境下,也可使各基础任务按照其自身的顺序依次执行,防止基础任务丢失、基础任务执行顺序出错等问题的发生。
图6是本发明的一个实施例提供的又一种浏览器操作方法的流程的示意图。本发明实施例提供了又一种浏览器操作方法,如图6所示,包括:
步骤601:获取针对浏览器的执行命令;执行命令中包括至少一个自动化流程及浏览器标识。
步骤602:将自动化流程拆分成至少一个自动化操作单元。
步骤603:分别获取每个自动化操作单元对应的至少一个基础操作。
步骤604:确定基础操作是否存在对应的页面元素;若有,则获取页面元素。
页面元素为浏览器所打开页面中的元素。页面元素可以是页面中的一个输入框、按钮、菜单栏、提示框等。
基础操作可没有对应的页面元素,也可以没有对应页面元素。例如,为了刷新浏览器页面,而在键盘上输入F5的基础操作,则该基础操作没有对应页面元素。又如,点击某按钮的基础操作,该基础操作有对应页面元素,且该基础操作对应的页面元素为该按钮。
可先获取浏览器所打开的页面,解析该页面,获取页面中的至少一个页面元素从至少一个页面元素中,查找是否存在与基础操作对应的页面元素。
步骤605:将基础操作及基础操作对应的页面元素放入操作队列中。
在将基础操作放入操作队列的同时,还需要将该操作元素对应的页面元素同时放入操作队列中。
步骤606:从操作队列中取出当前操作及当前操作对应的页面元素。
步骤607:对页面元素执行当前操作,页面元素位于浏览器标识对应的浏览器所打开的页面中。
一般地,按照基础操作的执行顺序,将基础操作及基础操作对应的页面元素放入操作队列中;按操作队列的放入顺序,从操作队列中取出当前操作及页面元素。可保证基础操作可依次按照顺序执行,减少由于基础操作的执行顺序出错,而使执行命令无法正常执行的风险。
在本申请实施例中,借助操作队列来存放并取出多个基础任务及基础任务对应的页面元素,可保证在多执行命令并发执行的环境下,也可使各基础任务按照其自身的顺序依次执行,并使各基础任务可准确对应到页面元素中,并对页面元素进行操作,以使执行命令可顺利执行。
在本发明的一个实施例中,获取页面中的至少一个页面元素,包括:
获取页面中的至少一个属性;
根据属性,获取页面中的至少一个页面元素。
通过页面元素的属性获取一个或多个页面元素。页面元素的属性可包括:id、name、class等。id是唯一标识,可查找精确到特定元素,但不是所有的元素都带有id标识。name标识不唯一,可通过name获取一个或多个元素。class标识不唯一,可通过class获取一个或多个页面元素。
例如:下面的html代码中,可通过id="select1"获取到下拉选择元素;可通过name="sex"获取到两个单选元素;可通过class="btnsubmit"获取到按钮元素。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>HTML代码</title>
<meta charset="utf-8"/>
</head>
<body style="text-align:center;padding-top:100px;">
<h5>hello word</h5>
<select id="select1">
<option value="0">html</option>
<option value="1">css</option>
</select>
<input type="radio"name="sex"/>男
<input type="radio"name="sex"/>女
<input type="button"class="btnsubmit"/>
</body>
</html>
在本发明的一个实施例中,获取页面中的至少一个页面元素,包括:
获取页面中的多个标签;
根据标签,生成页面的结构简图,结构简图包括多个节点,结构简图的根节点用于表征页面;
根据结构简图,生成至少一条树状路径;树状路径用于连接结构简图中的两节点;
根据树状路径,获取页面中的至少一个页面元素。
通过页面元素的树状路径获取一个或多个元素。本发明实施例通过对页面结构进行分析,提出一种通过树状路径查找元素的方式。图7是本发明的一个实施例提供的一种页面的结构简图的示意图。如图7所示,所有页面元素从根节点出发,树状路径是从根节点开始到某个节点的路线。本发明针对上述树状结构图,提出两种页面元素获取方式:完整树状路径方式及相对树状路径方式。
在本发明的一个实施例中,根据结构简图,生成至少一条树状路径,包括:
根据结构简图,生成完整树状路径,完整树状路径用于连接结构简图中的第一节点及第二节点,第一节点为根节点;
根据树状路径,获取页面中的至少一个页面元素,包括:
根据完整树状路径,获取第二节点对应的页面元素。
如图7所示,完整树状路径为通过从根节点开始到某个节点的完整路线来获取某个元素。同一层级如果存在多个相同类型节点,用序号区别。例如图7中的一个页面元素可通过以下的完整树状路径来表示:/HTML/Body/Div[1]/form/span[1]/span/input。
在本发明的一个实施例中,根据结构简图,生成至少一条树状路径,包括:
根据结构简图,生成相对树状路径,相对树状路径用于连接结构简图中的第三节点及第四节点,第三节点对应的页面元素具有唯一的标识方式;
根据树状路径,获取页面中的至少一个页面元素,包括:
根据相对树状路径,获取第四节点对应的页面元素。
第三节点具有唯一的标识方式。第三节点的标识方式可以是通过页面的属性来标识,也可以通过树状路径来标识,本发明实施例对如何表征第三节点的方式不作限定。
在本发明的一个实施例中,根据相对树状路径,获取第四节点对应的页面元素,包括:
获取第三节点对应的页面元素的标识方式;
根据相对树状路径及标识方式,获取第四节点对应的页面元素。
如图7所示,相对树状路径为选取可以唯一定位的元素,例如:通过id可以确定的元素。在该元素的基础上采用相对树状路线获取某个元素,即:基础元素结合相对树状路线的策略。
在本发明的一个实施例中,在根据标签,生成页面的结构简图之后,还包括:
若结构简图的同一层级中存在多个相同类型的节点,则分别用不同的序号标注多个相同类型的节点;
根据结构简图,生成至少一条树状路径,包括:
根据标注后的结构简图,生成树状路径。
如图7所示,图7中form节点带有唯一标识id=”form”,其子节点包含两个span,span可以根据基础元素form结合相对树状路线的策略获取。同一层级如果存在多个相同类型节点,用序号区别,即//id=”form”/span[1]/span/input。
需要说明的是,本发明实施例的方法可以结合RPA(Robotic ProcessAutomation,机器人流程自动化)技术来实现。RPA能实现自动处理大量重复的、规则的工作流程任务。使用RPA能达到提高准确率、提高效率、减少人工错误、大幅度降低运营成本等目的。本发明实施例提出一种基于页面元素控制的RPA实现方法,利用浏览器API,直接操作浏览器本身以及浏览器页面中的元素,达到机器人自动交互、自动完成人工任务的目的。
本发明实施例针对浏览器应用提出的一套RPA实现方法,更加有针对性;基于页面元素获取的方式来实现RPA,具有较强的通用性;利用浏览器自身提供的API来实现对页面元素的操作,使得RPA流程自动化的速度更快;浏览器API调用的稳定性由浏览器本身决定,规避了很大一部分不稳定性因素的风险;本发明实施例中采用多层级抽象——三层模型来实现流程自动化,结构清晰,模型横向扩展性较强。
图8是本发明的一个实施例提供的一种浏览器操作系统的结构示意图,包括:
机器人代码模块801,用于获取针对浏览器的执行命令,所述执行命令中包括至少一个自动化流程及浏览器标识;
驱动模块802,用于针对每个所述自动化流程:根据所述自动化流程,生成至少一个自动化操作单元,每个所述自动化操作单元包括至少一个基础操作;根据所述基础操作,对所述浏览器标识对应的浏览器进行操作。
在本发明的一个实施例中,驱动模块802具体用于:将自动化流程拆分成至少一个自动化操作单元;
分别获取每个自动化操作单元对应的至少一个基础操作;
将至少一个基础操作放入操作队列中;
从操作队列中取出当前操作,对浏览器标识执行当前操作。
在本发明的一个实施例中,驱动模块802还用于:确定基础操作是否存在对应的页面元素;
若有,则获取页面元素;
将基础操作及基础操作对应的页面元素放入操作队列中;
从操作队列中取出当前操作及当前操作对应的页面元素;
对页面元素执行当前操作;页面元素位于浏览器所打开的页面中。
在本发明的一个实施例中,驱动模块802具体用于:按照基础操作的执行顺序,将基础操作及基础操作对应的页面元素放入操作队列中;
按操作队列的放入顺序,从操作队列中取出当前操作及页面元素。
在本发明的一个实施例中,驱动模块802还用于:获取浏览器所打开的页面;
解析页面,获取页面中的至少一个页面元素;
从至少一个页面元素中,查找是否存在与基础操作对应的页面元素。
在本发明的一个实施例中,驱动模块802具体用于:
获取页面中的至少一个属性;
根据属性,获取页面中的至少一个页面元素。
在本发明的一个实施例中,驱动模块802具体用于:
获取页面中的多个标签;
根据标签,生成页面的结构简图,结构简图包括多个节点,结构简图的根节点用于表征页面;
根据结构简图,生成至少一条树状路径;树状路径用于连接结构简图中的两节点;
根据树状路径,获取页面中的至少一个页面元素。
在本发明的一个实施例中,驱动模块802具体用于:
根据结构简图,生成完整树状路径,完整树状路径用于连接结构简图中的第一节点及第二节点,第一节点为根节点;
根据完整树状路径,获取第二节点对应的页面元素。
在本发明的一个实施例中,驱动模块802具体用于:
根据结构简图,生成相对树状路径,相对树状路径用于连接结构简图中的第三节点及第四节点,第三节点对应的页面元素具有唯一的标识方式;
根据相对树状路径,获取第四节点对应的页面元素。
在本发明的一个实施例中,驱动模块802具体用于:
获取第三节点对应的页面元素的标识方式;
根据相对树状路径及标识方式,获取第四节点对应的页面元素。
在本发明的一个实施例中,驱动模块802具体用于:
若结构简图的同一层级中存在多个相同类型的节点,则分别用不同的序号标注多个相同类型的节点;
根据标注后的结构简图,生成树状路径。
在本发明的一个实施例中,驱动模块802具体用于:
按照至少一个基础操作的执行顺序,将至少一个基础操作放入操作队列中;
按操作队列的放入顺序,从操作队列中取出当前操作。
本发明实施例提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述任一实施例的方法。
下面参考图9,其示出了适于用来实现本发明实施例的终端设备的计算机系统900的结构示意图。图9示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括机器人代码模块及驱动模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,信息确定模块还可以被描述为“获取针对浏览器的执行命令,所述执行命令中包括至少一个自动化流程及浏览器标识”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
获取针对浏览器的执行命令,所述执行命令中包括至少一个自动化流程及浏览器标识;
针对每个所述自动化流程:根据所述自动化流程,生成至少一个自动化操作单元,每个所述自动化操作单元包括至少一个基础操作;
根据所述基础操作,对所述浏览器标识对应的浏览器进行操作。
根据本发明实施例的技术方案,根据针对浏览器的执行命令,自动生成与执行命令对应的基础操作,并根据生成的基础操作对浏览器执行相应操作。相比人工操作浏览器的方法,在处理浏览器的相关工作中,能够减少所需的人力成本、效率较高且不易出错。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (11)
1.一种浏览器操作方法,其特征在于,包括:
获取针对浏览器的执行命令,所述执行命令中包括至少一个自动化流程及浏览器标识;
针对每个所述自动化流程:根据所述自动化流程,生成至少一个自动化操作单元,每个所述自动化操作单元包括至少一个基础操作;
根据所述基础操作,对所述浏览器标识对应的浏览器进行操作;
所述根据所述自动化流程,生成至少一个自动化操作单元,包括:
将所述自动化流程拆分成至少一个自动化操作单元;
分别获取每个所述自动化操作单元对应的至少一个基础操作;
确定所述基础操作是否存在对应的页面元素;若有,则获取页面元素;
将所述至少一个基础操作及所述基础操作对应的页面元素放入操作队列中,以将每个所述自动化操作单元中的基础操作事件按序执行;
所述根据所述基础操作,对所述浏览器标识对应的浏览器进行操作,包括:
从所述操作队列中取出当前操作及所述当前操作对应的页面元素,对所述浏览器标识对应的浏览器执行所述当前操作;
所述确定所述基础操作是否存在对应的页面元素,包括:
获取所述页面中的多个标签;
根据所述标签,生成所述页面的结构简图,所述结构简图包括多个节点,所述结构简图的根节点用于表征所述页面;
根据所述结构简图,生成至少一条树状路径,所述树状路径用于连接所述结构简图中的两节点;
根据所述树状路径,获取所述页面中的至少一个页面元素。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述浏览器所打开的页面;
解析所述页面,获取所述页面中的至少一个页面元素;
所述确定所述基础操作是否存在对应的页面元素,包括:
从所述至少一个页面元素中,查找是否存在与所述基础操作对应的页面元素。
3.根据权利要求2所述的方法,其特征在于,
所述获取所述页面中的至少一个页面元素,包括:
获取所述页面中的至少一个属性;
根据所述属性,获取所述页面中的至少一个页面元素。
4.根据权利要求1所述的方法,其特征在于,
所述根据所述结构简图,生成至少一条树状路径,包括:
根据所述结构简图,生成完整树状路径,所述完整树状路径用于连接所述结构简图中的第一节点及第二节点,所述第一节点为所述根节点;
所述根据所述树状路径,获取所述页面中的至少一个页面元素,包括:
根据所述完整树状路径,获取所述第二节点对应的页面元素。
5.根据权利要求1所述的方法,其特征在于,
所述根据所述结构简图,生成至少一条树状路径,包括:
根据所述结构简图,生成相对树状路径,所述相对树状路径用于连接所述结构简图中的第三节点及第四节点,所述第三节点对应的页面元素具有唯一的标识方式;
所述根据所述树状路径,获取所述页面中的至少一个页面元素,包括:
根据所述相对树状路径,获取所述第四节点对应的页面元素。
6.根据权利要求5所述的方法,其特征在于,
所述根据所述相对树状路径,获取所述第四节点对应的页面元素,包括:
获取所述第三节点对应的页面元素的标识方式;
根据所述相对树状路径及所述标识方式,获取所述第四节点对应的页面元素。
7.根据权利要求1所述的方法,其特征在于,
在所述根据所述标签,生成所述页面的结构简图之后,还包括:
若所述结构简图的同一层级中存在多个相同类型的节点,则分别用不同的序号标注所述多个相同类型的节点;
所述根据所述结构简图,生成至少一条树状路径,包括:
根据标注后的结构简图,生成所述至少一条树状路径。
8.根据权利要求1所述的方法,其特征在于,
所述将所述至少一个基础操作放入操作队列中,包括:
按照所述至少一个基础操作的执行顺序,将所述至少一个基础操作放入所述操作队列中;
所述从所述操作队列中取出当前操作,包括:
按所述操作队列的放入顺序,从所述操作队列中取出当前操作。
9.一种浏览器操作系统,其特征在于,包括:
机器人代码模块,用于获取针对浏览器的执行命令,所述执行命令中包括至少一个自动化流程及浏览器标识;
驱动模块,用于针对每个所述自动化流程:根据所述自动化流程,生成至少一个自动化操作单元,每个所述自动化操作单元包括至少一个基础操作;根据所述基础操作,对所述浏览器标识对应的浏览器进行操作;
所述驱动模块具体用于:将所述自动化流程拆分成至少一个自动化操作单元;分别获取每个所述自动化操作单元对应的至少一个基础操作;确定所述基础操作是否存在对应的页面元素;若有,则获取页面元素;将所述至少一个基础操作及所述基础操作对应的页面元素放入操作队列中,以将每个所述自动化操作单元中的基础操作事件按序执行;从所述操作队列中取出当前操作及所述当前操作对应的页面元素,对所述浏览器标识对应的浏览器执行所述当前操作;
所述驱动模块还用于:获取所述页面中的多个标签;根据所述标签,生成所述页面的结构简图,所述结构简图包括多个节点,所述结构简图的根节点用于表征所述页面;根据所述结构简图,生成至少一条树状路径,所述树状路径用于连接所述结构简图中的两节点;根据所述树状路径,获取所述页面中的至少一个页面元素。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011443718.XA CN112527435B (zh) | 2020-12-08 | 2020-12-08 | 浏览器操作方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011443718.XA CN112527435B (zh) | 2020-12-08 | 2020-12-08 | 浏览器操作方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112527435A CN112527435A (zh) | 2021-03-19 |
CN112527435B true CN112527435B (zh) | 2024-02-13 |
Family
ID=74999966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011443718.XA Active CN112527435B (zh) | 2020-12-08 | 2020-12-08 | 浏览器操作方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112527435B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1342290A (zh) * | 1998-10-02 | 2002-03-27 | 国际商业机器公司 | 会话浏览器和会话系统 |
CN109783755A (zh) * | 2018-12-20 | 2019-05-21 | 平安科技(深圳)有限公司 | 浏览器操作模拟方法、装置、可读存储介质及终端设备 |
CN110333908A (zh) * | 2019-06-14 | 2019-10-15 | 广东广信通信服务有限公司 | 一种业务流程自动化处理方法及装置 |
CN111798216A (zh) * | 2020-07-14 | 2020-10-20 | 上海智子信息科技股份有限公司 | 一种机器人流程自动化多工具集成方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9753843B2 (en) * | 2014-11-20 | 2017-09-05 | Accenture Global Services Limited | Automated testing of web-based applications |
-
2020
- 2020-12-08 CN CN202011443718.XA patent/CN112527435B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1342290A (zh) * | 1998-10-02 | 2002-03-27 | 国际商业机器公司 | 会话浏览器和会话系统 |
CN109783755A (zh) * | 2018-12-20 | 2019-05-21 | 平安科技(深圳)有限公司 | 浏览器操作模拟方法、装置、可读存储介质及终端设备 |
CN110333908A (zh) * | 2019-06-14 | 2019-10-15 | 广东广信通信服务有限公司 | 一种业务流程自动化处理方法及装置 |
CN111798216A (zh) * | 2020-07-14 | 2020-10-20 | 上海智子信息科技股份有限公司 | 一种机器人流程自动化多工具集成方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112527435A (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11409425B2 (en) | Transactional conversation-based computing system | |
CN110807067B (zh) | 关系型数据库和数据仓库的数据同步方法、装置及设备 | |
US11580179B2 (en) | Method and system for service agent assistance of article recommendations to a customer in an app session | |
US9286271B2 (en) | Providing an electronic document collection | |
JP4879580B2 (ja) | ユーザ・インタフェースに自動探索メニューを与えるシステムおよび方法 | |
US20210084019A1 (en) | Secured rest execution inside headless web application | |
CN108509339A (zh) | 基于浏览器和思维导图的测试用例生成方法、装置及设备 | |
US10706085B2 (en) | Method and system for exposing virtual assistant services across multiple platforms | |
CN110580244A (zh) | 一种文件处理方法、装置、服务器及存储介质 | |
CN115757400B (zh) | 数据表处理方法、装置、电子设备和计算机可读介质 | |
CN110543297A (zh) | 用于生成源码的方法和装置 | |
CN110929128A (zh) | 一种数据爬取方法、装置、设备和介质 | |
US8683425B2 (en) | System for generating application architecture design work products | |
CN113297081B (zh) | 一种持续集成流水线的执行方法和装置 | |
CN110309239B (zh) | 一种可视化地图编辑方法和装置 | |
CN112527435B (zh) | 浏览器操作方法及系统 | |
US10339205B2 (en) | Efficient handling of bi-directional data | |
CN111324470A (zh) | 用于生成信息的方法及装置 | |
CN112148847B (zh) | 一种语音信息的处理方法及装置 | |
US20120030273A1 (en) | Saving multiple data items using partial-order planning | |
CN111177183B (zh) | 一种生成数据库访问语句的方法和装置 | |
US20240314041A1 (en) | Node state determination method and apparatus, electronic device, and storage medium | |
CN113765773B (zh) | 一种沟通记录处理方法和装置 | |
CN112905929B (zh) | 保存网页内容的方法、装置、设备和计算机可读介质 | |
CN113268417B (zh) | 一种任务执行方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |