Robot Framweork之UI自动化测试---AutoItLibrary封装上传文件

在实现UI自动化的过程中,遇到了文件上传的场景,涉及到Windows系统窗口,这就需要用到AutoItLibrary库。

一、文件上传流程

1、点击上传

2、输入文件路径,点击确定

二、上传功能自动化脚本

一)点击上传

直接使用click element关键字即可。

二)输入文件路径

使用AutoIt的相关关键字,可实现上传文件窗口的操作。

1、Win Active

将操作焦点转移到打开文件窗口

2、Control Focus

将光标聚焦到文本路径输入框

3、Control Set Text

在打开的编辑框Edit1中,输入要上传的文件路径

4、Control Focus

将光标聚焦到打开按钮

5、send {enter}

点击打开按钮

三、AutoIt v3

一)AutoIt v3简介

AutoIt v3 是用以编写并生成具有 BASIC 语言风格的脚本程序的免费软件,它被设计用来在 Windows GUI(用户界面)中进行自动操作。通过它可以组合使用模拟键击、鼠标移动和窗口/控件操作等来实现自 动化任务,而这是其它语言所无法做到或尚无可靠方法实现的(比如 VBScript 和 SendKeys)。

AutoIt 可以干的事情:

1、运行Windows和DOS下的可执行文件

2、模拟键盘按键动作,支持大多数键盘布局

3、模拟鼠标移动和点击动作

4、对窗口进行移动、调整大小和其他操作

5、与窗口的控件进行交互,如设置/获取文本、移动、关闭等操作

6、使用剪贴板进行剪切/粘贴文本操作

7、对注册表进行操作

二)识别控件

1、打开AutoIt Windows Info 工具

在AutoIt v3解压所在目录,双击Au3Info.exe文件,打开工具

2、鼠标点击 Finder Tool,鼠标将变成一个小风扇形状的图标, 按住鼠标左键拖动到需要识别的控件上

3、可以获取到以下信息

Title:打开

Text:

Classname NN:Edit1

对应脚本参数:

这样,Web端上传文件的脚本就完成了。

我是程序员馨馨,全网ID唯一,转载请注明出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/55809.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++的vector

文章目录 迭代器失效问题构造函数赋值运算符begin() end()size() capacity() empty()reserve()operator[ ]insert()erase()resize() 迭代器失效问题 迭代器失效,实际就是迭代器底层对应指针所指向的空间被销毁了,而使用一块已经被释放的空间 1.扩容导致迭代器失效问题 在对…

uniapp h5支付宝支付后端返回Form表单,前端如何处理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1.调取接口拿到后端返回的form表单 前言 uniapp h5 支付宝支付,后端返回一串form表单,前端如何拿到支付串并且调用支付 1.调取接口拿到…

STM32 4G学习

硬件连接 ATK-IDM750C模块可直接与正点原子 MiniSTM32F103开发板板载的ATK模块接口(ATK-MODULE)进行连接。 功能说明 ATK-IDM750C是正点原子(ALIENTEK)团队开发的一款高性能4G Cat1 DTU产品,支持移动4G、联通4G和…

Leetcode | 42.接雨水 Trapping Rain Water

Leetcode | 42.接雨水 Trapping Rain Water 文章目录 Leetcode | 42.接雨水 Trapping Rain Water题目Solution 1:动态规划Solution 2: 单调栈Solution 3 : 双指针最快的方法代码 My SolutionReference>>>>> 欢迎关注公众号【三戒纪元】 <<<<< 题…

MySQL刷题遇到的盲点(五)窗口函数

窗口函数 语法&#xff1a; <窗口函数> over (partition by <用于分组的列名>order by <用于排序的列名>) partition by&#xff1a;用来对表分组&#xff08; partition 子句可以省略&#xff0c;省略就是不指定分组&#xff09; order by&#xff1a;是…

在Volo.Abp微服务中使用SignalR

假设需要通过SignalR发送消息通知&#xff0c;并在前端接收消息通知的功能 创建SignalR服务 在项目中引用 abp add-package Volo.Abp.AspNetCore.SignalR在Module文件中添加对模块依赖 [DependsOn(...typeof(AbpAspNetCoreSignalRModule))] public class IdentityApplicati…

分页Demo

目录 一、分页对象封装 分页数据对象 分页查询实体类 实体类用到的utils ServiceException StringUtils SqlUtil BaseMapperPlus,> BeanCopyUtils 二、示例 controller service dao 一、分页对象封装 分页数据对象 import cn.hutool.http.HttpStatus; import com.…

Nios初体验之——Hello world!

文章目录 前言一、系统设计1、系统模块框图2、系统涉及到的模块1、时钟2、nios2_qsys3、片内存储&#xff08;onchip_rom、onchip_ram&#xff09;4、串行通信&#xff08;jtag_uart&#xff09;5、System ID&#xff08;sysid_qsys&#xff09; 二、硬件设计1、创建Qsys2、重命…

uni-app——下拉框多选

一、组件components/my-selectCheckbox.vue <template><view class"uni-stat__select"><span v-if"label" class"uni-label-text">{{label &#xff1a;}}</span><view class"uni-stat-box" :class"…

Vue3和TypeScript项目-移动端兼容

1 全局安装typescript 2 检测安装成功 3 写的是ts代码&#xff0c;但是最后一定要变成js代码&#xff0c;才能在浏览器使用 这样就会多一个js文件 3 ts语法 数组语法 对象语法 安装vue3项目 成功后进入app。安装依赖。因为我们用的是脚手架&#xff0c;要引入东西的时候不需要…

idea-常用插件汇总

idea-常用插件汇总 码云插件 这个插件是码云提供的ps-码云是国内的一款类似github的代码托管工具。 Lombok Lombok是一个通用Java类库&#xff0c;能自动插入编辑器并构建工具&#xff0c;简化Java开发。通过添加注解的方式&#xff0c;不需要为类编写getter或setter等方法…

关于浏览器调试项目出现crbug/1173575, non-JS module files deprecated

解决&#xff1a;浏览器中的netWork&#xff0c;在这个位置选择No throttling&#xff0c;就可以了&#xff0c;至于为什么会出现这个问题和为什么这么解决我也不知道&#xff0c;望大神解答