【Autoit】Autoit 使用
一、Autoit 上传文件、
1.常用语法
- WinActivate("title") 聚焦到指定活动窗口
- ControlFocus ( "title", "窗口文本", controlID) 设置输入焦点到指定窗口的某个控件上;
- WinWait ( "title" , "窗口文本" , 超时时间 ) 暂停脚本的执行直至指定窗口存在(出现)为止;
- ControlSetText ( "title", "窗口文本", controlID, "新文本" ) 修改指定控件的文本;
- Sleep ( 延迟 ) 使脚本暂停指定时间,单位是毫秒;
- ControlClick ( "title", "窗口文本", 控件ID , 按钮 , 点击次数 ) 向指定控件发送鼠标点击命令;
2.编写脚本
1)打开网页,点击到上传文件界面。
如博客园->新随笔->上传图片,停留在此界面不动

2)打开SciTE Script Editor编写脚本
WinActivate("打开文件")
ControlSetText ( "打开文件", "", “Edit1”, "d:\1.jpg" )
Sleep ( 2000 )
ControlClick ( "代开文件", "", “Button1” )
编辑完后运行,可看到图片上传成功
3.元素定位
打开AutoIt Window Info定位上传文件窗口的元素(title和control id)
control ID由class和instance组成

4.导出exe文件
打开AutoIt Window Info 将脚本导出exe文件

直接点击exe文件运行或通过cmd运行可看见图片上传成功
5.python运行
(参考批量上传图片)
二、命令行参数上传图片
通过命令行参数批量上传图片
1.命令行参数
参数化传入的参数,可以通过autoit的命令行参数:
```
myProg.exe param1 “This is a string parameter” 99
```
在脚本中,可用以下变量获取命令行参数
CmdLine[0];=3CmdLine[0];=3CmdLine[1] ; = param1
CmdLine[2];="Thisisastringparameter"CmdLine[2];="Thisisastringparameter"CmdLine[3] ; = 99
$CmdLineRaw ; = 'param1 "This is a string parameter" 99'
- CmdLine[0]获取的是命令行参数的总数,在上例中CmdLine[0]获取的是命令行参数的总数,在上例中CmdLine[0]=3
- CmdLine[1] CmdLine[1] CmdLine[63] 获取的是命令行参数第1到第63位,这个方式最多只能获取63个参数,不过正常情况下是足够用的
- $CmdLineRaw 获取的是未拆分的所有参数,是一个长字符串,这种情况下不局限与63个参数
2.将如下代码保存为.exe文件后(文件名随便取一个:cmdjpg.exe),在cmd执行一次,看是否成功
```
WinActivate("文件上传");
ControlSetText("文件上传", "", "Edit1", $CmdLine[1] );
Sleep(2000);
ControlClick("文件上传", "", "Button1");
```

3.用python代码执行
```python
# 需上传图片的路径
file_path = "D:\\1.png"
# 执行autoit上传文件
os.system("C:\Users\Gloria\Desktop\cmdjpg.exe %s" % file_path) # 你自己本地的
```
三、批量上传图片
1.方法一:先把要上传的图片放到一个list下,然后for循环
```python
# 把需要上传的图片放到一个list下
all_png = ["D:\\1.png", "D:\\2.png", "D:\\3.png", "D:\\4.png"]
# 循环点击上传图片
for i in all_png:
# 1点开编辑器图片
# 2点开文件上传按钮
# 执行autoit上传文件
os.system("C:\Users\Gloria\Desktop\cmdjpg.exe %s" % i) # 你自己本地的.exe路径
time.sleep(3)
```
2.方法二:把要上传的图片编号,如:0.png , 1.png, 2.png这种(从0开始编号),放到同一目录下,然后for循环
```python
# 循环点击上传图片
for i in range(4):
# 1点开编辑器图片
# 2点开文件上传按钮
# 文件名
file_name = "D:\\%s.png" % i # 参数化路径名称
# 执行autoit上传文件
os.system("C:\Users\Gloria\Desktop\cmdjpg.exe %s" % file_name) # 你自己本地的.exe路径
time.sleep(3)
```
方法2参考代码:
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
import os
import time
profile_path = r'C:\Users\Administrator\AppData\Roaming\Mozilla\Firefox\Profiles\2hzyvtjr.default'
profile = webdriver.FirefoxProfile(profile_path)
driver = webdriver.Firefox(profile) def find_element_(loactor):
e = WebDriverWait(driver,timeout = 30).until(lambda x : x.find_element(*loactor))
return e def find_elements_(loactor):
e = WebDriverWait(driver,timeout = 30).until(lambda x : x.find_elements(*loactor))
return e driver.get(r'http://www.cnblogs.com/dhs94/')
find_element_(('id','blog_nav_newpost')).click()
#循环上传图片
for i in range(4):
find_element_(('id','Editor_Edit_EditorBody_uploadImage')).click()
iframes = find_elements_(('css selector','iframe'))
driver.switch_to_frame(iframes[1])
# find_element_(('name','file')).send_keys(r'C:\Users\lintao\Desktop\me.jpg')
find_element_(('css selector','.qq-upload-button')).click()
file_path=r'd:\Pictures\pjy\%s.jpg'%i
os.system(r'C:\Users\Administrator\Desktop\ss.exe %s'%file_path)
driver.switch_to_default_content()
time.sleep(5)
【Autoit】Autoit 使用的更多相关文章
- selenium+java利用AutoIT实现文件上传
转自https://www.cnblogs.com/yunman/p/7112882.html?utm_source=itdadao&utm_medium=referral 1.AutoIT介 ...
- selenium 用autoIT上传下载文件
一.下载安装AutoIT 下载并安装AutoIT,下载链接:https://www.autoitscript.com/site/autoit/ AutoIT安装成功后,可以在开始菜单下看到AutoIT ...
- AutoIt实现Webdriver自动化测试文件上传
在运用WebDriver进行自动化测试时,由于WebDriver自身的限制,对于上传文件时Windows弹出的文件选择窗口无法控制,通过在网上查找资料锁定使用AutoIt来控制文件上传窗口. Auto ...
- Autoit中用PrintWindow替代ScreenCapture函数实现截图
想截取躲在后面的窗体或控件,找到了PrintWindow函数,幸运的是Autoit3也对此进行了封装以方便使用. 于是乎,将帮助文件里的_WinAPI_PrintWindow()实例改写了一下,以替代 ...
- 对AutoIt中控件和窗口的理解
经过尝试,对AutoIt中Control和Window有了新的认识,分享一下 1.Control 现在我想对一个WinForm架构的应用程序进行自动化操作,得到控件Advanced Mode属性为[N ...
- selenium webdriver 右键另存为下载文件(结合robot and autoIt)
首先感谢Lakshay Sharma 大神的指导 最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为 ...
- AutoIt操作Windows GUI实现文件上传
AutoIt 一个使用类似BASIC脚本语言的免费软件,用于Windows GUI(图形用户界面)中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务. 官方网站: htt ...
- PyAutoGUI-python版的autoit/AHK
简单介绍各个图形界面自动操作的python库,类似按键精灵\autoit\ahk(autohotkey)等等这些自动化工具.这类python库不是只是用来实现自动游戏之类的程序,业界也用这些库来做GU ...
- AUTOIT解决域控普通用户以管理员身份安装软件方法
windows域管理,本是很好的管理方式,方便的软件分发,权限控制等功能.不过由于我处软件分发总有那么一些电脑没有成功安装,或是新装的电脑安装软件时漏了安装一些软件,而这些软件需要管理员权限安装的,用 ...
- autoit使用WMIC获取硬件信息
效果图: 直接上源码了 #cs ---------------------------------------------------------------------------- AutoIt ...
随机推荐
- Java之封装与访问权限控制(一)
目录 Java之封装与访问权限控制(一) 封装的概念 访问控制符 属性私有化 Java之封装与访问权限控制(一) 对于封装的概念,我总觉得自己还是挺了解的,但是真要我说,还真说不出个啥来.我只能默默地 ...
- vs2017 C# ActiveX浏览器插件 创建 发布 C# windows窗体控件库(.NET Framework)注意事项
vs2017需要安装插 插件下载地址:https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.Micro ...
- windows系统搭建zookeeper
安装&配置 在apache的官方网站提供了好多镜像下载地址,然后找到对应的版本 下载地址: http://mirrors.cnnic.cn/apache/zookeeper/zookeeper ...
- mongo shell 通过返回信息定位错误点
有时候我们会通过mongo shell 运行一些脚本,去执行更新或运维需求.mongo shell 可执行的代码可以实现比较复杂的功能,代码也可以比较丰富.当执行报错时,如果可以快速定位到错误点,对解 ...
- Java大数类 BigInteger
package bigint; /** * This class encapsulates a BigInteger, i.e. a positive or negative integer * wi ...
- jQuery 源码分析(二十) DOM操作模块 插入元素 详解
jQuery的DOM操作模块封装了DOM模型的insertBefore().appendChild().removeChild().cloneNode().replaceChild()等原生方法.分为 ...
- Python 从入门到进阶之路(七)
之前的文章我们简单介绍了一下 Python 中异常处理,本篇文章我们来看一下 Python 中 is 和 == 的区别及深拷贝和浅拷贝. 我们先来看一下在 Python 中的双等号 == . == 是 ...
- console的各种输出格式
console.log('%c',CSS样式)输出css样式 console.log('%s',字符串) 字符串格式化 %d%i 整数格式化: console.log('%o',节点) 可扩展的dom ...
- Java注解简单学习
注解(也被称作元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们在稍后某个时刻可以很方便的使用这些数据,其在一定程度上将元数据与源代码文件结合在一起,而不是保存在外部文档中. 注解使我们可以 ...
- ES6-字符串模板
es6字符串模板 // es5 let ananiah = "大诶呀"; let blog = "我要忘了你的样子"+ ananiah; console.log ...