一种在打开的Chrome浏览器中进行自动化操作的方法与流程

文档序号:24161306发布日期:2021-03-05 17:15阅读:601来源:国知局
一种在打开的chrome浏览器中进行自动化操作的方法
技术领域
:[0001]本发明属于rpa自动化技术
技术领域
:,具体为一种在打开的chrome浏览器中进行自动化操作的方法。
背景技术
::[0002]chrome是一款由google公司开发的网页浏览器,该浏览器基于其他开源软件撰写,包括webkit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。软件的名称是来自于称作chrome的网络浏览器gui(图形使用者界面)。软件的beta测试版本在2008年9月2日发布,提供50种语言版本,有windows、macos、linux、android、以及ios版本提供下载。谷歌将在谷歌浏览器chrome上推出“小程序”增强型网页应用。chrome浏览器的特点是简洁、快速。chrome览器支持多标签浏览,每个标签页面都在独立的“沙箱”内运行,在提高安全性的同时,一个标签页面的崩溃也不会导致其他标签页面被关闭。此外,googlechrome基于更强大的javascriptv8引擎,这是当前web浏览器所无法实现的。[0003]在进行业务流程自动化开发时,对于运行在chrome浏览器内特别是已经打开chrome浏览器的系统,在目前业界没有相应的解决方案。因此,在其他能够自动化操作的系统或者平台工作完成之后,不能直接对已经打开的chrome系统进行自动化操作,导致rpa自动化流程断节,自动化操作无法继续的问题。技术实现要素:[0004]本发明的目的在于:为了解决上述提出的问题,提供一种在打开的chrome浏览器中进行自动化操作的方法。[0005]本发明采用的技术方案如下:一种在打开的chrome浏览器中进行自动化操作的方法,所述在打开的chrome浏览器中进行自动化操作的方法包括以下步骤:[0006]s1:编写chrome扩展与msghost进程;[0007]s2:配置chrome浏览器,加载步骤1编写的扩展;[0008]s3:编写websocketserver,与msghost的websocket通信;[0009]s4:打开chrome浏览器,导航到自动化操作页面,在chrome浏览器中选择需要操作的界面元素并保存信息[0010]s5:编写自动化操作用例。[0011]在一优选的实施方式中,所述chrome扩展主要作用为获取所打开网页的运行时,采用javascript语言编写,由chrome浏览器提供一些api,包括输入输出通信;浏览器对打开的网页分别定义了background、content,分别表示为全局背景页,所有的网页打开均会加载content为当前页面的上下文,可以通过标准输入输出流与应用程序通信。[0012]在一优选的实施方式中,所述msghost为与扩展通信的应用程序;采用c#编写,通过输入输出流与扩展通信;可以通过扩展加载网页事件,实现当鼠标移动到对应网页上使其高亮显示、获取元素区域、位置,也可以发送脚本程序到扩展,执行网页界面元素中的点击、滚动、输入等操作,同时,为了传输这些信息,msghost还实现了一个websocket客户端。[0013]在一优选的实施方式中,所述msghost采用多线程实现;中间采用消息通信,通过读取程序配置连接到websocketserver,将与浏览器标准输入流的消息转发到websocketserver,由websocketserver处理保存界面元素的信息、点击、键盘输入等动作。[0014]在一优选的实施方式中,所述界面元素信息包含所属网页、元素类型、以及在界面中的位置;界面中的位置有多种描述形式,如果发现元素id唯一,那么可以通过id确定元素;如果发现元素id不唯一,可以通过xpath或者css层叠样式表来确定界面元素的层级关系得以定位,并把界面元素特征描述符通过通信输入输出流与websocket进行发送保存。[0015]在一优选的实施方式中,msghost还需要实现界面元素的操作方式;通过界面元素描述符与对应的操作动作在界面上触发鼠标点击、键盘输入等操作;真正具体操作的执行应用为chrome扩展插件,当msghost收到对应动作请求时会调用扩展执行javascript脚本。[0016]在一优选的实施方式中,所述步骤s2具体包括:[0017]步骤2.1:打开chrome浏览器,通过“更多工具->扩展程序”进入到扩展程序配置页;[0018]步骤2.2:在扩展程序配置页中打开开发者模式;[0019]步骤2.3:选择“加载已解压的扩展程序”,加载步骤1编写的扩展程序。[0020]在一优选的实施方式中,所述websocketserver采用c#编写,做为msghost的服务端,与msghost定义了各种rpc远程调用,主要包含保存界面元素模块与自动化操作模块;保存界面元素模块主要用以定义界面元素信息json格式化;自动化操作模块接收json格式化后的界面元素信息做为操作目标参数,用以调用msghost中公开暴露的元素操作方法。[0021]在一优选的实施方式中,所述步骤2.3为了判断扩展被顺利加载,chrome在启动时会在windows注册表中查询扩展的相关信息。注册表中通过扩展的uuid进行标志,在所属的注册表项下,有扩展对应的应用程序路径,chrome启动时通过读取相应信息,以子进程的方式打开扩展应用。[0022]综上所述,由于采用了上述技术方案,本发明的有益效果是:[0023]1、本发明中,实现了对于与chrome浏览器的自动化操作,chrome浏览器打开即通过扩展企用。对于搭建整体的自动平台,使各个系统之间能够自动化连接,代替了传统的手动操作,提高了工作效率。[0024]2、本发明中,提供了采集识别chrome网页界面元素的工具与对其自动化操作的方法。使得在业务流程自动化中人动chrome的操作得以使用程序进行实现,并且比传统人工操作更方便、高效。附图说明[0025]图1为本发明的流程图;[0026]图2为本发明中chrome自动化操作的示意图。具体实施方式[0027]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。[0028]对具体实施例介绍之前,首先对本文中涉及的技术名词给予解释如下:[0029]chrome浏览器:又称谷歌浏览器,是一个由google(谷歌)公司开发的开放源代码网页浏览器。本软件的程式码是基于其他开放源代码软件所撰写,包括webkit和mozilla,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。软件的名称是来自于又称作“chrome”的网络浏览器图形使用者界面(gui)。[0030]界面元素:chrome浏览器打开的网页中的可视内容,通常使用html进行描述,常见的界面元素有input输入框、div层、image图像元素、a超链接元素、table表格界面元素等。[0031]msghost:chromenativemessaging是谷歌定义的一套扩展程序和应用程序通信机制。扩展程序和应用程序可以使用与其他消息传递api相似的api与本机应用程序交换消息。支持此功能的本机应用程序必须注册一个本机消息传递主机,该主机知道如何与扩展进行通信。chrome会在一个单独的过程中启动主机,并使用标准输入和标准输出流与其进行通信。本例的msghost即为使用该机制开发的扩展程序,除与chrome通信外msghost还实现了一个websocket客户端,用以将标准chrome的标准输入输出流进行转发到应用程序。[0032]websocketserver:websocket是html5开始提供的一种在单个tcp连接上进行全双工通讯的协议。websocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在websocketapi中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。本例websocketserver即使用websocket协议实现的服务端,用以接收与msghost的双向通信。[0033]参照图1-2,[0034]实施例1:[0035]结合附图1所示,一种实现在打开的chrome浏览器中进行自动化操作的方法,包括:[0036]步骤1:编写chrome扩展与msghost进程,步骤s1中msghost为与扩展通信的应用程序;采用c#编写,通过输入输出流与扩展通信;可以通过扩展加载网页事件,实现当鼠标移动到对应网页上使其高亮显示、获取元素区域、位置,也可以发送脚本程序到扩展,执行网页界面元素中的点击、滚动、输入等操作,同时,为了传输这些信息,msghost还实现了一个websocket客户端,msghost采用多线程实现;中间采用消息通信,通过读取程序配置连接到websocketserver,将与浏览器标准输入流的消息转发到websocketserver,由websocketserver处理保存界面元素的信息、点击、键盘输入等动作,msghost还需要实现界面元素的操作方式;通过界面元素描述符与对应的操作动作在界面上触发鼠标点击、键盘输入等操作;真正具体操作的执行应用为chrome扩展插件,当msghost收到对应动作请求时会调用扩展执行javascript脚本;[0037]步骤2:配置chrome浏览器,加载步骤1编写的扩展,所述步骤s2具体包括:[0038]步骤2.1:打开chrome浏览器,通过“更多工具->扩展程序”进入到扩展程序配置页;[0039]步骤2.2:在扩展程序配置页中打开开发者模式;[0040]步骤2.3:选择“加载已解压的扩展程序”,加载步骤1编写的扩展程序,步骤2.3为了判断扩展被顺利加载,chrome在启动时会在windows注册表中查询扩展的相关信息。注册表中通过扩展的uuid进行标志,在所属的注册表项下,有扩展对应的应用程序路径,chrome启动时通过读取相应信息,以子进程的方式打开扩展应用;[0041]步骤3:打开chrome浏览器,导航到自动化操作页面;[0042]如图2所示,chrome浏览器在被打开时会自动到注册表查找扩展信息,通过注册表中记录的地址以子进程的方式打开扩展应用的msghost,所有信息均在扩展程序中的mainfest.json文件中进行配置[0043]步骤4:在chrome浏览器中选择需要操作的界面元素并保存信息,步骤s4中界面元素信息包含所属网页、元素类型、以及在界面中的位置;界面中的位置有多种描述形式,如果发现元素id唯一,那么可以通过id确定元素;如果发现元素id不唯一,可以通过xpath或者css层叠样式表来确定界面元素的层级关系得以定位,并把界面元素特征描述符通过通信输入输出流与websocket进行发送保存;[0044]步骤5:编写自动化操作用例;[0045]如图2所示自动化操作用例使用c#编写,引用所述webscoketserver。webscoketserver做为msghost的服务端,与msghost定义了各种rpc远程调用,主要包含保存界面元素模块与自动化操作模块,websocketserver采用c#编写,做为msghost的服务端,与msghost定义了各种rpc远程调用,主要包含保存界面元素模块与自动化操作模块;保存界面元素模块主要用以定义界面元素信息json格式化;自动化操作模块接收json格式化后的界面元素信息做为操作目标参数,用以调用msghost中公开暴露的元素操作方法。[0046]保存界面元素模块主要用以定义界面元素信息json格式化;[0047]自动化操作模块接收json格式化后的界面元素信息做为操作目标参数,用以调用msghost中公开暴露的元素操作方法;[0048]实施例2:[0049]在实施例1的基础上,所述步骤5自动化操作用例包含webscoket通信模块、界面元素保存模块、鼠标操作模块、键盘操作模块;[0050]进一步地,所述msghost为与扩展通信的应用程序。采用c#编写,通过输入输出流与扩展通信。可以通过扩展加载网页事件,实现当鼠标移动到对应网页上使其高亮显示、获取元素区域、位置,也可以发送脚本程序到扩展,执行网页界面元素中的点击、滚动、输入等操作,同时,为了传输这些信息,msghost还实现了一个websocket客户端。[0051]进一步地,所述msghost采用多线程实现。中间采用消息通信,通过读取程序配置连接到websocketserver,将与浏览器标准输入流的消息转发到websocketserver,由websocketserver处理保存界面元素的信息、点击、键盘输入等动作。[0052]进一步地,界面元素信息包含所属网页、元素类型、以及在界面中的位置。界面中的位置有多种描述形式,如果发现元素id唯一,那么可以通过id确定元素;如果发现元素id不唯一,可以通过xpath或者css层叠样式表来确定界面元素的层级关系得以定位,并把界面元素特征描述符通过通信输入输出流与websocket进行发送保存。[0053]进一步地,msghost还需要实现界面元素的操作方式。通过界面元素描述符与对应的操作动作在界面上触发鼠标点击、键盘输入等操作。真正具体操作的执行应用为chrome扩展插件,当msghost收到对应动作请求时会调用扩展执行javascript脚本。[0054]以登录举例,需要输入账号密码登录:[0055](1)在自动化用例中调用websocketserver中的输入方法输入账号密码;[0056](2)websocketserver会通过msghost发送目标界面元素与要执行的javascript到chrome扩展;[0057](3)扩展通过界面元素所在网页和特征定位找到对应元素,通过调用设置元素的value值输入账号密码;[0058](4)同理找到登录按钮元素,触发元素的click事件模拟登录;[0059](5)登录完成。[0060]尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1