在RPA(Robotic Process Automation)中,浏览器自动化是一个非常常见的应用场景。所以具备实现浏览器自动化的能力是一个RPA软件所必须具备的能力。所以我们最先开发浏览器组件。
浏览器自动化相关技术
关于浏览器自动化,有很多成熟的库可以库可以选择,比较出名的是Selenium,Selenium是一种用于Web应用程序测试的工具,可以模拟用户在浏览器中的操作,如点击、输入、滚动等。Selenium支持多种浏览器,包括Chrome、Firefox、Safari等,因此可以用于实现浏览器的自动化操作。在使用Selenium进行浏览器自动化时,需要先安装对应的浏览器驱动程序,如ChromeDriver、GeckoDriver等。然后,通过编写Selenium脚本,可以实现对浏览器的自动化操作。
除了Selenium之外,微软开源自动化测试工具 Playwright,支持主流浏览器,包括:Chrome、Firefox、Safari 等,同时支持以无头模式、有头模式运行,并提供了同步、异步的 API,并且支持浏览器端的自动化脚本录制等功能。它无需安装浏览器驱动,具有更易于使用的API。具有如下特点: 1、跨浏览器。Playwright 支持所有现代渲染引擎,包括 Chromium、WebKit 和 Firefox。 2、跨平台。在 Windows、Linux 和 macOS 上进行本地或 CI、无头或有头测试。 3、跨语言。在 TypeScript、JavaScript、Python、.NET、Java 中使用 Playwright API。 4、测试移动网络。适用于 Android 和 Mobile Safari 的 Google Chrome 原生移动仿真。相同的渲染引擎适用于您的桌面和云端。
因此在GoBot中,我们采用Playwright作为浏览器自动化的底层框架,并对其进行封装,实现我们自己的自动化指令。
组件功能
浏览器相关的组件如上图所示,其实对于浏览器操作,除了打开关闭浏览器以外,主要是两方面的操作,一个是页面相关操作,另外一个就是元素相关操作。
页面相关操作主要包括:
元素相关的操作主要包括: