AutoIt安装下载及使用总结

AutoIt常用方法介绍

说明:最近学习Web自动化的过程中,需要处理一些Windows的弹窗,例如证书选择或者文件选择之类的,需要用到AutoIt这个工具,下面记录下这个工具的基本使用、其脚本的常用方法以及编写过程中我遇到的一些问题。

一、AutoIt安装
  1. 访问下载链接进行工具下载:AutoIt下载
    在这里插入图片描述

  2. 下载完成后,找到下载地址,双击击安装包进行程序安装。
    在这里插入图片描述

  3. 一直点击确定进行安装。
    在这里插入图片描述

  4. 安装成功后,开始菜单会出现多个AutoIt的多个快捷访问方式。
    在这里插入图片描述

二、AutoIt使用说明
  1. 快捷方式介绍
  • SciTE Script Editor:脚本编写工具,我们通过此工具来编写AutoIt的执行文件。
  • Run Script:脚本执行工具,我们通过此工具来执行AutoIt的脚本文件,后缀为**.au3。
  • Compile Script to .exe:脚本编译工具,我们通过此工具来将编写完成的文件编译为可直接执行的exe文件。
  • AutoIt Window Info:Windows弹窗信息获取工具,我们通过此工具来获取可编译脚本的弹窗相关参数。
  • Check For SQLite Updates:没用到这个,估计是操作SQLlite数据库的。
  • Check For Updates:也没用到这个,估计是用来检查版本更新的。
  1. 使用介绍
  • 打开SciTE Script Editor,进行脚本编写,F5为运行。

在这里插入图片描述

  • 打开AutoIt Window Info,当需要窗口参数的时候进行获取。

在这里插入图片描述

  • 脚本编写没问题后,保存文件,通过Complie Script to .exe编译为exe文件,进行自动化操作。

在这里插入图片描述

  • 运行可执行文件,进行自动化操作。

在这里插入图片描述
3. 常用方法介绍

  • ControlFocus(“A”, “B”, “C”)函数:选择操作弹窗,A为Windows弹窗的标题名称,B为窗口的文本(可为空),C为弹窗控件名称。
  • Opt(“A”, “B”)函数:功能根据参数来定,用于一些不好定位或者无法定位的点击。(MouseCoordMode", 0)是将鼠标在屏幕的坐标置为相对于焦点窗口的坐标。其他功能可以自己参考其他资料。
  • ControlClick(“A”, “B”, “C”, “D”, “E”, “F”)函数:焦点点击函数,模拟鼠标点击。A为窗口标题名称,B为窗口文本(可为空),C为窗口组件名称,D为鼠标操作(left左键,right右键,非必填), E为鼠标点击次数(非必填),F鼠标的横坐标(非必填),G鼠标的纵坐标(非必填)。
  • Sleep(“A”)函数:睡眠函数,程序等待。A为等待时间,单位是毫秒。有时窗口响应慢,需要等一会才会出现,就可以先睡眠一会。
  • WinExists(“A”)函数:弹窗存在判断函数。A为弹窗标题。判断某个弹窗是否出现。
  • ConsoleWrite(“A”)函数:控制台输出函数。A为输出内容。控制台输出进行脚本调试。
  • ControlSetText(“A”, “B”, “C”, “D”)函数:文本输入函数。A为弹窗标题,B为弹窗文本(可为空),C为弹窗控件名称,D为输入的值。用来进行信息填写。
三、脚本实战

脚本编写场景:界面有个Windows弹窗,我需要点击进行证书选择,选择后点击确定保存,保存后,可能出现密码弹窗,可能不出现,出现密码弹窗就输入密码,然后点击确定。

  1. 确定脚本流程

    场景我们可以确定出脚本流程大概如图下:

    • 获取证书选择窗口焦点
    • 确定要选择的证书,点击选择证书
    • 选择证书后,点击确定
    • 判断是否有密码弹窗,有的话输入密码,没有的话结束运行
  2. 编写脚本

# 选择证书弹窗获取焦点
ControlFocus("Windows 安全","","ListBox1");
# 更改鼠标坐标相对位置为弹窗
Opt("MouseCoordMode", 0);
# 点击相对位置下的证书选项
ControlClick("Windows 安全","", "ListBox1", "left", 1, 250, 100);
# 点击确定按钮
ControlClick("Windows 安全","确定","Button2");
# 等待一秒看弹窗是否出现
Sleep(2000);
# 出现的话进行密码输入,没出现关闭程序
If WinExists("[class:#32770]", "") Then
	#打印信息用来调试
	ConsoleWrite("弹窗出现");
	# 获取密码输入弹窗焦点
	ControlFocus("验证UKey用户口令", "", "Edit1");
	# 定位密码输入框
	ControlSetText("验证UKey用户口令", "", "Edit1", "123456");
	# 点击确定按钮
	ControlClick("验证UKey用户口令","","Button1");
Else
	# 控制台打印信息
	ConsoleWrite("弹窗没有出现");
	# 结束运行
	Exit;
EndIf
	# 控制台打印信息
	ConsoleWrite("运行结束");
	# 结束运行
	Exit;
  1. F5运行脚本,查看运行结果
    在这里插入图片描述
  2. 保存文件,通过Complie Script to .exe编译为exe文件。
    在这里插入图片描述
  3. 点击生成的exe运行即可。
四、遇到的问题和解决方案
  1. 弹窗中有中文,输入后展示为??
    在这里插入图片描述
  2. 弹窗延时出现,不能获取到弹窗焦点
// 添加延时代码,等弹窗出现后再进行操作
sleep(2000)
  1. 判断条件不会写
//脚本的判断条件写法为
If condition Then
	//满足条件的操作
	operation1;
	operation2;
Else
	//不满足条件的操作
	operation3
EndIf
	//结束判断后的操作
	Exit
  1. 控制台输出界面乱码
    在这里插入图片描述

    打开User Options File文件添加下面语句:

    code.page=936
    output.code.page=936
    

在这里插入图片描述
在这里插入图片描述

  1. 窗口需要点击选择,但是定位不到元素。
# 更改鼠标坐标相对位置为弹窗
Opt("MouseCoordMode", 0);
# 点击相对位置下的证书选项
ControlClick("Windows 安全","", "ListBox1", "left", 1, 250, 100);

通过鼠标的相对位置进行点击(不是相对位置的话,会受到屏幕大小和窗口位置的影响),假如左上角在屏幕的位置为(A, B),需要点击位置在屏幕的位置为(C, D),那么取相对值后的点击位置坐标为(A-C, B-D),大概意思差不多,可能不准确,可以通过取不同坐标多次模拟点击试一下。

以上,大家有什么意见或者建议,欢迎留言一起讨论~
  • 10
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值