前言:有很多公司做一些客户端的应用,每次发版都要耗费人力去手动回归比较费时,那么我们就想着去怎么去驱动人为的操作变为机器的操作过程,当然想着进行UI自动

那么我们就要考虑怎么去实现exe应用程序的自动化,此刻引来了几个问题值得我们去思考

1:exe的应用基于什么框架实现的其原理是什么?

2:怎么去自动启动壳

3:怎么去远程调式端口对壳子嵌入的网页进行做一些控制操作

一:应用程序的实现原理

1:exe的应用程序eg: electron 都是基于CEF开源的chromenium框架,selenium cef/electron(打包桌面程序)/qtwebbengine(渲染页面)

2:ChromeDriver和Selenium是用于自动测试基于Chromium的应用程序的工具,可以使用多种语言编写:Java,Python等

3:ChromeDriver使用DevTools远程调试协议(通过--remote-debugging-port=XXXX传递给应用程序的命令行标志进行配置)与基于Chromium的应用程序进行通信进行一些页面元素的控制。

二:实例如下:

1:安装JDK,然后将安装的bin目录添加到PATH的环境变量中

2:创建一个自动化文件目录,用于存放启动的应用

3:下载符合版本的驱动 chromedriver (http://chromedriver.storage.googleapis.com/index.html)

4:创建一个maven项目 引入依赖的jar 第三方库

5:创建一个DriverInstant.java  (启动应用程序,此类是一个封装好的)

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

public class DriverInstant {
private static WebDriver sInstant;//单例

public static WebDriver getInstant(){
if (sInstant==null) {
//设置webdriver.chrome.driver属性
System.setProperty("webdriver.chrome.driver", "D:/auto/chromedriver.exe");

//声明chromeoptions,主要给chrome设置参数
ChromeOptions options = new ChromeOptions();
// 添加用户配置文件路径
options.setBinary("XXXXXXXXX.exe");
options.addArguments("remote-debugging-port=远程调试端口号");

//新建一个WebDriver的对象,但是New的是chrome的驱动 实例化chrome对象
sInstant = new ChromeDriver(options);
//WebDriver driver=new ChromeDriver();
sInstant.get("嵌入的页面链接");
System.out.println(sInstant.toString());
}

return sInstant;
}

}

《exe应用程序UI自动化》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. NOIP 模拟 $31\; \rm Game$

    题解 很容易求出在没有字典序最大的限制条件下的最多胜利场数. 这样就可以对于每一位放最优的解,怎么做,二分答案. 分两种情况,一种是当前一位是输的,一种是赢的,复杂度 \(\mathcal O(\rm ...

  2. nodejs根据word模板生成文档

    这里使用的模块是 docx-templates,直接npm安装即可[方法二:https://www.cnblogs.com/vichang/p/10416449.html]  1,模板文件 +++QU ...

  3. 关于Ubuntu18.04 linux系统下使用Tim QQ 微信

    先配上张图 步骤: 1.1 :需要安装环境deepin-wine 1.1:(你把他理解为jdk就好,没有jdk无法运行java程序,同理没有deepin-wine环境无法运行腾讯产品) 1.2 :去哪 ...

  4. 工作多年后再来聊聊IO

    IO模型 IO是Input/Output的缩写.Linix网络编程中有五种IO模型: blocking IO(阻塞IO) nonblocking IO(非阻塞IO) IO multiplexing(多 ...

  5. 写webpack插件报警告Tapable.plugin is deprecated. Use new API on .hooks instead解决方案,webpack4插件新写法

    最近写了个小插件报了个警告,然后去百度了一下,全都给我说extract-text-webpack-plugin这个插件有问题要更新,我也是无语了,这个插件我用都没用,百度翻了下齐刷刷全是这个答案,搞得 ...

  6. Redis(二):基本数据类型

    基础 # redis默认有16个数据库,数组下标从0开始,默认使用0号库 # 当我们启动服务器并连接客户端之后: set <key> <value> # 向数据库中添加数据用于 ...

  7. 高德地图——骑行路线&骑行指定

    &plugin=AMap.Riding 也是[]中放json, 包含keyword和city,不能有途经1.骑行路线(关键字) <!DOCTYPE html> <html&g ...

  8. vscode Markdown Preview Enhanced 安装配置

    打开VSCode 打开Externsion,可通过Ctrl+Shift+X 选中 Markdown Preview Enhanced并install即可 配置Preview风格: Magage -&g ...

  9. 搭建私服仓库:(一)Windows安装Nuxus

    Nexus下载 官网.官网下载.百度云盘 提取码:su33 将nexus下载下来,以2.14.5的windows版本为例子(3.x暂时下载不下来,迅雷会员都不行) 下载后进行解压,得到以下目录: 其中 ...

  10. Robot Framework 面试题

    什么是 RF 基于可扩展关键字驱动的自动化测试框架 什么是可扩展关键字驱动 可扩展意味着可以自己开发,也可以调用第三方的关键字库 关键字驱动意味着测试用例都是围绕着关键字运行的 RF 的原理(框架?) ...