一种多客户端浏览器自动化交互方法及系统与流程

摘要: 本发明涉及浏览器自动化,特别是一种多客户端浏览器自动化交互方法及系统。背景技术:1、随着企业级web应用、智能代理和流程自动化的发展,浏览器自动化交互逐渐用于项...
一种多客户端浏览器自动化交互方法及系统与流程

本发明涉及浏览器自动化,特别是一种多客户端浏览器自动化交互方法及系统。

背景技术:

1、随着企业级web应用、智能代理和流程自动化的发展,浏览器自动化交互逐渐用于项目管理、运维操作、数据录入和在线审批等业务场景。连续业务通常包含多个浏览器操作,操作之间可能存在业务数据传递关系,任务执行过程中还可能因图形验证码、滑块验证或风控提示转入人工操作,因此,业务数据保持和人工操作后的任务恢复成为连续执行中的重要技术环节。

2、然而,现有方法仍存在两方面的局限性:一方面,人工介入会打断业务数据的连续使用,已经形成的业务数据若不能在暂停与恢复过程中继续保持,需要业务数据的指令难以取得相应数据;另一方面,人工操作会中断自动执行,任务执行位置与业务变量若不能共同保留并恢复,恢复执行时容易出现重复执行、遗漏执行或参数无法继续使用的问题。

技术实现思路

1、鉴于上述现有存在的问题,提出了本发明。

2、因此,本发明提供了一种多客户端浏览器自动化交互方法,解决人工介入后业务数据与任务执行位置难以连续恢复问题。

3、为解决上述技术问题,本发明提供如下技术方案:

4、第一方面,本发明提供了一种多客户端浏览器自动化交互方法,其包括,建立多个客户端共用的浏览器上下文,接收浏览器任务,将指令按执行顺序组成指令队列;执行浏览器上下文中的指令队列,依次执行指令并捕获网络请求响应,从网络请求响应中获取业务数据,将业务数据保存为业务变量,并在需要业务数据的指令中使用业务变量;暂停需要人工操作的指令执行,生成断点指针,断点指针指向指令队列中的下一个未执行步骤,将指令队列、业务变量和断点指针保存为任务检查点,任务检查点保存后转入人工操作;恢复人工操作完成后的指令执行,依据断点指针确定下一个未执行步骤,从任务检查点恢复业务变量,并从下一个未执行步骤开始执行指令队列中的剩余指令,直至浏览器任务完成。

5、作为本发明所述多客户端浏览器自动化交互方法的一种优选方案,其中:所述接收浏览器任务,将指令按执行顺序组成指令队列,具体步骤为:接收客户端发起的浏览器任务,并接收客户端针对浏览器任务发送的指令;按照浏览器任务中浏览器操作的执行顺序依次记录相应指令;形成指令队列,并保持指令的执行顺序。

6、作为本发明所述多客户端浏览器自动化交互方法的一种优选方案,其中:所述执行浏览器上下文中的指令队列,依次执行指令并捕获网络请求响应,具体步骤为:读取浏览器任务的指令队列,按照执行顺序取得未执行的指令;取得需要获取业务数据的指令,并读取网络地址模式,网络地址模式由客户端针对需要获取业务数据的指令指定;在执行需要获取业务数据的指令前,调用网络请求监控接口启动网络请求捕获,并将网络地址模式传入网络请求监控接口;读取指令命令和参数,将指令命令和参数发送至浏览器上下文;浏览器运行引擎调用浏览器操作,并使用参数执行浏览器操作;浏览器操作产生网络请求后,调用网络请求等待接口,并将网络地址模式传入网络请求等待接口;网络请求等待接口检测与网络地址模式匹配的网络请求,取得网络请求响应;一条指令执行完成后,按照执行顺序取得下一条未执行的指令。

7、作为本发明所述多客户端浏览器自动化交互方法的一种优选方案,其中:所述从网络请求响应中获取业务数据,将业务数据保存为业务变量,并在需要业务数据的指令中使用业务变量,具体步骤为:读取网络请求响应中的响应体,从响应体中提取业务数据;将业务数据保存为业务变量;按照指令队列中的执行顺序取得指令,逐项读取指令中的参数并识别变量引用;按照变量引用查找业务变量,取得业务数据;使用业务数据替换参数中的变量引用。

8、作为本发明所述多客户端浏览器自动化交互方法的一种优选方案,其中:所述暂停需要人工操作的指令执行,具体步骤为:读取页面文档对象模型,取得页面元素的class属性、图像元素的资源地址和页面文本;检查class属性和图像元素的资源地址,并匹配页面文本中的风控提示文案;识别图形验证码、滑块验证或风控提示文案;暂停正在执行的指令,停止从指令队列中取得新的指令。

9、作为本发明所述多客户端浏览器自动化交互方法的一种优选方案,其中:所述生成断点指针,断点指针指向指令队列中的下一个未执行步骤,具体步骤为:读取正在执行的指令在指令队列中的位置,从下一位置开始依次读取指令,取得第一条未执行指令;读取第一条未执行指令在指令队列中的执行位置,创建断点指针;将第一条未执行指令在指令队列中的执行位置写入断点指针。

10、作为本发明所述多客户端浏览器自动化交互方法的一种优选方案,其中:所述将指令队列、业务变量和断点指针保存为任务检查点,任务检查点保存后转入人工操作,具体步骤为:读取指令队列、已经保存的业务变量和断点指针,创建任务检查点;将指令队列、业务变量和断点指针写入同一任务检查点,并保存任务检查点;任务检查点保存完成后,向人工操作界面发送暂停通知;人工通过人工操作界面直接操作浏览器上下文,处理需要人工介入的浏览器操作;人工完成浏览器操作后,在人工操作界面确认操作完成。

11、作为本发明所述多客户端浏览器自动化交互方法的一种优选方案,其中:所述恢复人工操作完成后的指令执行,依据断点指针确定下一个未执行步骤,从任务检查点恢复业务变量,具体步骤为:人工在人工操作界面确认操作完成后,加载已经保存的任务检查点,读取断点指针和指令队列;读取断点指针中记录的执行位置,不从指令队列的起始位置重新取得指令,依据执行位置从指令队列中读取下一条未执行指令;从任务检查点中加载已经保存的业务变量。

12、作为本发明所述多客户端浏览器自动化交互方法的一种优选方案,其中:所述从下一个未执行步骤开始执行指令队列中的剩余指令,直至浏览器任务完成,具体步骤为:读取下一条未执行指令中的指令命令和参数,逐项识别参数中的变量引用;按照变量引用查找业务变量,取得业务数据,并使用业务数据替换参数中的变量引用;将指令命令和参数发送至浏览器上下文,浏览器运行引擎调用浏览器操作,并使用参数执行浏览器操作;一条指令执行完成后,按照指令队列中保存的执行顺序取得下一条未执行指令;依次取得并执行剩余指令,直至浏览器任务完成。

13、第二方面,本发明提供了一种多客户端浏览器自动化交互系统,包括,上下文建立模块,用于建立多个客户端共用的浏览器上下文,接收浏览器任务,将指令按执行顺序组成指令队列;变量传递模块,用于执行浏览器上下文中的指令队列,依次执行指令并捕获网络请求响应,从网络请求响应中获取业务数据,将业务数据保存为业务变量,并在需要业务数据的指令中使用业务变量;断点保存模块,用于暂停需要人工操作的指令执行,生成断点指针,断点指针指向指令队列中的下一个未执行步骤,将指令队列、业务变量和断点指针保存为任务检查点,任务检查点保存后转入人工操作;指令恢复模块,用于恢复人工操作完成后的指令执行,依据断点指针确定下一个未执行步骤,从任务检查点恢复业务变量,并从下一个未执行步骤开始执行指令队列中的剩余指令,直至浏览器任务完成。

14、本发明有益效果为:通过业务变量与任务检查点的配合,使业务数据在人工介入后仍可继续使用,降低参数传递中断的风险;通过断点指针与指令队列的配合,使任务能够从未执行位置继续运行,并保持指令的执行顺序,降低重复执行和遗漏执行的风险,提高浏览器自动化任务的连续性和可靠性。