1. 三方工具安装

autoit-v3-setup下载地址

如果打不开可以直接通过云盘下载:百度云盘链接地址 提取码:fdnz

安装过程直接下一步就行(注意下选择32位还是64位)

2. autoit-v3的使用

话不多说先直接上代码:

ControlFocus("打开","","Edit1")

WinWait("[CLASS:#32770]","","10")

ControlSetText("打开","","Edit1",$CmdLineRaw)

Sleep(100)

ControlClick("打开","","Button1")

然后在开始–程序找到 Autolt Window Info 打开,位数自己选择

打开后看到如下界面:

代码解释:

第一行代码:ControlFocus(“打开”,"",“Edit1”)

ControlFocus ( “title”, “窗口文本”, controlID) 设置输入焦点到指定窗口的某个控件上。这里的“窗口文本”可以不写

第二行代码:WinWait("[CLASS:#32770]","",“10”)

WinWait ( “title题” , “窗口文本” , 超时时间 ) 暂停脚本的执行直至指定窗口存在(出现)为止;这里的“窗口文本”可以不写

第三行代码:ControlSetText(“打开”,"",“Edit1”,$ CmdLineRaw)

ControlSetText ( “title”, “窗口文本”, controlID, “新文本” ) 修改指定控件的文本;这里的“窗口文本”可以不写。$CmdLineRaw是什么意思后面讲

第五行代码:ControlClick(“打开”,"",“Button1”)

ControlClick ( “title”, “窗口文本”, 控件ID , 按钮 , 点击次数 ) 向指定控件发送鼠标点击命令;这里有些参数可以不用写

然进行保存,保存后会生成au3后缀的文件。然后通过Compile Script to .exe

将脚本转化成exe文件。

在工作使用中文件上传的弹窗基本一样,大多数情况只需要下title就可以了,甚至有些时候根本不用修改。

3.python代码调用exe实现文件上传

import os

#path1是exe的路劲。例如:F:\workspace\private_clouds\librarys\filename.exe

#path2是需要上传文件的路径。例如:F:\1.txt

os.system(‘{0} {1}’.format(path1,path2))#注意中间有空格

3.2Java代码调用exe实现文件上传

AutoIt3的脚本如下:

ControlFocus("打开","","Edit1")

WinWait("[CLASS:#32770]","",100) ;等待0.1秒

ControlSetText("打开", "", "Edit1", $CmdLineRaw) ;打开文件目录

WinWait("[CLASS:#32770]","",2000) ;等待0.1秒

;Send("{ENTER}") ;敲回

WinWait("[CLASS:#32770]","",5000) ;等待0.1秒

ControlClick("打开", "","Button1");

JAVA调用方法如下:   引入的名称要加入引号,选中图片后,默认会加入" "

String picName = "d:\\"+"\"图片3.png\" \"图片2.png\"";

Runtime.getRuntime().exec("businessGroup/community-autotest-ui/src/main/resources/uploadCmd.exe " +picName);

4.命令行参数

$CmdLine[0] 获取的是命令行参数的总数,在上例中 $CmdLine[0]=3

$CmdLine[1]~ $CmdLine[63] 获取的是命令行参数第1到第63位,这个方式最多只能获取63个参数,不过正常情况下是足够用的

$CmdLineRaw 获取的是未拆分的所有参数,是一个长字符串,这种情况下不局限与63个参数。

备注:这段资料在网上找的, $CmdLineRaw 参数超过69个好像就不能上传了(个人遇到的仅供参考)

5.上传文件/文件夹

上传单文件:

只需要把第三行代码稍微改一下就行了例如:

ControlSetText(“打开”,"",“Edit1”,“D:\upload_file.txt”)

多文件同时上传(不限个数)

第三行代码:ControlSetText(“打开”,"",“Edit1”,$CmdLineRaw)保持不变。我这里专门写了一个方法,无论你是传入的列表、json还是单个文件,统一将参数格式化为下图的格式。

这里单独说一下参数是json格式时的情况,我这里是在excel写成类似字典的格式

,python读取后是str类型,所有我通过json.loads将其转化为字典类型的。类似下图,注意这里要是英文双引号

格式化代码:

def path_format(self, path):

'''

将多个文件所在位置(路径)进行格式化,转化为指定的格式

:param path: 需要上传文件的路径

:return: 将格式化的文件格式返回 "F:\1.txt" "F:\2.txt" "F:\3.txt"

'''

file_names = ''

if type(path) is list:

for i in path:

file_names = file_names + '"' + i + '"' + ' '

return file_names

else:

try:

data = json.loads(path)

for i in data.values():

file_names = file_names + '"' + i + '"' + ' '

return file_names

except:

return path

def fileUpload(self, path1, path2):

'''

文件上传

:param path1: 文件路径(.au3转换的.exe)

:param path2: 需要上传文件格式,从path_format方法获取

:return:

'''

sleep(2)

path3 = self.path_format(path2)

os.system(path1 + ' ' + path3)

上传文件夹

与上传文件一样,将文件路径换成文件夹路径就可以了

ControlFocus("选择要上传的文件夹","","Edit1")

WinWait("[CLASS:#32770]","","10")

ControlSetText("选择要上传的文件夹","","Edit1",$CmdLineRaw)

Sleep(100)

ControlClick("选择要上传的文件夹","","Button1")

python autoit3_利用AutoIt3多参数化上传图片--java 和python的引用相关推荐

  1. thrift java长连接_利用thrift在c++、java和python之间相互调用

    转自:http://blog.csdn.net/andy_yf/article/details/7487384 thrift做为跨语言调用的方案有高效,支持语言较多,成熟等优点:代码侵入较强是其弱点. ...

  2. 安卓手机可以用python编程软件-可以在手机上进行Java,Python的编程软件,你用过么?...

    今天千锋广州小编给大家简单介绍两个在手机上练习编程的软件,包括Java.Python,主要内容如下: Java: 这里可以使用「"AIDE集成开发环境"」. 这个软件在安卓手机上集 ...

  3. java和python可以在一个项目中同时使用么-java调用python的几种用法(看这篇就够了)...

    java调用python的几种用法如下: 在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件(推荐 ...

  4. java和python的web自动化有什么区别-Java 和 Python 有哪些区别?

    区别 一.python虚拟机没有java强,java虚拟机是java的核心,python的核心是可以很方便地使用c语言函数或c++库. 二.python是全动态性的,可以在运行时自己修改自己的代码,j ...

  5. python c java_简单明了看懂JAVA,Python和C+的优劣势

    Java由于其优越的跨平台可移植性,在Web开发中是主流语言.在加上手机Android系统的发展,使得java开发人员的需求量很大.同时,Java现在也用来开发手游.Java 的语法相对规范. Pyt ...

  6. 零基础适合学python吗-零基础更适合学习Java还是python?

    原标题:零基础更适合学习Java还是python? 最近有小伙伴向云和数据小编咨询,说想学习一门编程语言,但是没有任何基础,问是学习Java好还是学python更合适?对于这位小伙伴的问题,小编觉得有 ...

  7. c java python sql是什么意思_SQL、Java、Python、C++ 是当今最顶级的技术?

    2019年流行那些技术技能? 现在最需要的技术技能是什么?流行什么技能?通过查看过去五年中Indeed.com上发布的数百万美国技术工作,你就知道答案了. 下面的五张图表示了从2014年的9月至201 ...

  8. 简单工厂模式(Java、Python)、工厂方法模式(Java、Python)

    目录 一.试画出简单工厂模式的模式结构图,并对模式进行分析 1.1 简单工厂模式结构图: 1.2 简单工厂模式的实现(Java) 1.3 简单工厂模式的优缺点 1.4 简单工厂模式实现(Python) ...

  9. java可以调用python程序吗_我们可以从java调用python方法吗?

    是的,那可以做到.通常,这将通过创建PythonInterpreter对象然后使用它来调用python类来完成. 请考虑以下示例: Java: import org.python.core.PyIns ...

最新文章

  1. mysql error1045 yes_MySQLERROR1045(28000)错误的解决办法_MySQL
  2. python编程做什么工作-Python能做什么工作?
  3. GDCM:gdcm::terminal的测试程序
  4. 通过Rman定期删除归档脚本
  5. JDK10的新特性:var和匿名类
  6. [2011山东ACM省赛] Identifiers(模拟)
  7. c++ stack 遍历_python实现二叉树的遍历以及其他基本操作
  8. 234C. Weather
  9. Java注解 编译_Java注解(3)-注解处理器(编译期|RetentionPolicy.SOURCE)
  10. linux虚拟文件系统(四)-文件系统挂载操作分析
  11. 7-7 全量复制开销
  12. 无法完成操作,因为文件包含病毒或潜在的垃圾软件
  13. windows命令查看无线网密码
  14. 苏州VS上海:城市化的二个阶段
  15. Spring Boot系列 - 3. SpringBoot项目学习汇总
  16. poj3616 Miking Time dp
  17. 电脑莫名多出一个管理员账户
  18. 交通违章 处罚[转]
  19. fedora RPM包下载地址
  20. lodash的防抖和节流

热门文章

  1. 机器学习是什么?我对机器学习的理解
  2. win10python3.7怎么装pytorch_Win10下Pytorch安装、环境搭建、及报错的解决方案
  3. webpack:两小时极速入门
  4. 如何完成述职报告或年终总结PPT
  5. 微信小程序点击复制文本至剪切板
  6. Bug管理工具Bugtags——初认知
  7. 【javaScript】encodeURI来解决URL传递时为什么需要进行两次encodeURI编码
  8. Docker安装redis(保姆级教程图文并茂)
  9. 喊话程瞎子,出来道个歉真的那么难吗?
  10. Excel如何批量删除工作表公式保留数值和文本