使用AutoIt实现文件上传
在网页上上传文件的时候,Selenium无法直接操作如Flash、JavaScript 或Ajax 等技术所实现的上传功能,这时候我们需要借用一个叫做AutoIt的软件来帮助我们事先自动化的上传操作。
官方网站:https://www.autoitscript.com/site/autoit/
AutoIT脚本编译成可执行文件后,放到本地的某一个目录下。自动化实现过程中,需要上传图片时,首先定位到【上传】字样文本,点击此按钮。执行编辑后的可执行文件,实现文件上传。
为了方便我们的操作和说明,我们首先来自己写一个Html来模拟实际的上传框
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>文件上传实例</title>
</head>
<body>
<h1>文件上传实例</h1>
<form method="post" action="/TomcatTest/UploadServlet"enctype="multipart/form-data">选择一个文件: <input type="file" name="uploadFile" /> <br />
<br /> <input type="submit" value="上传" />
</form>
</body>
</html>
将代码复制到txt,然后将文件的扩展名改成html再用浏览器打开就可以使用了。
从官网上面下载AutoItv3并安装,安装好了之后可以在开始菜单看到AutoIt的各种工具。
- AutoIT Window Info用来识别Windows控件,根据识别的控件信息编写脚本;
- Complie Script to .exe,用来将利用AutoIt编写的脚本,编译成可执行文件;
- Run Script 用来执行AutoIT的脚本信息;
- SciTE Script Editor用来编写AutoIt脚本。
- 接下来就是利用以上四种工具,来编写AutoIT脚本,然后编译成可执行文件。
下面我们就可以来使用AutoIt来操作上传文件了。首先,打开AutoIT Window Info,利用此工具来识别Windows控件信息,如输入框、按钮等。以刚才我们自己写的那个Html为例:
ControlFocus("打开","","Edit1")
;识别windows窗口
WinWait("[CLASS:#32770]","",10)
;窗口等待十秒
ControlSetText("打开", "", "Edit1", "f:\abc\xyz.txt")
;想输入框中输入需要上传的地址
Sleep(2000)
ControlClick("打开", "","Button1");
;点击[打开】按钮

在转换成.exe文件之后,我们即可在java程序中对其进行调用。
Runtime upload = Runtime.getRuntime();
try {
String au3exe = "F:\\abc\\up1.exe";
upload.exec(au3exe);
}catch (IOException e){
System.out.println("Fail to upload!");
e.printStackTrace();
}
这样,我们就实现了利用AutoIt的自动上传功能。
使用AutoIt实现文件上传的更多相关文章
- python+selenium+autoit实现文件上传
问题 在做web端ui层自动化的时候会碰到文件上传的操作,经常有朋友问到,这里总结一下 解决方案 第一种:type=file的上传文件,类似如下的 使用类似这样的代码就可以完成: driver.fin ...
- selenium+java利用AutoIT实现文件上传
转自https://www.cnblogs.com/yunman/p/7112882.html?utm_source=itdadao&utm_medium=referral 1.AutoIT介 ...
- python selenium +autoit实现文件上传 --实践
upload.html <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&q ...
- AutoIt实现文件上传
AutoIt目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动 ...
- 采用AutoIt实现文件上传
在非常规的上传界面中,AutoIt可以操作Windows资源管理器实现上传路径的输入. AutoIt中编辑以下脚本,需通过“AutoIt Windows Info”定位资源管理器路径输入位置信息及打开 ...
- autoit 处理文件上传弹出框,并在JAVA中调用
Java 代码 //定义exe 文件存放的绝对路径 File file2 = new File("."); String command = file2.getCanonical ...
- Selenium2学习-039-WebUI自动化实战实例-文件上传下载
通常在 WebUI 自动化测试过程中必然会涉及到文件上传的自动化测试需求,而开发在进行相应的技术实现是不同的,粗略可划分为两类:input标签类(类型为file)和非input标签类(例如:div.a ...
- Selenium3自动化测试【29】文件上传
日常在访问页面时,文件上传与下载操作也常常用到,因此在Web自动化测试中也会遇到文件上传的情况.针对上传功能,WebDriver并没有提供对应的方法.针对上传文件的场景主要有两种解决思路: 同步视频知 ...
- AutoIt实现Webdriver自动化测试文件上传
在运用WebDriver进行自动化测试时,由于WebDriver自身的限制,对于上传文件时Windows弹出的文件选择窗口无法控制,通过在网上查找资料锁定使用AutoIt来控制文件上传窗口. Auto ...
随机推荐
- [LeetCode] 283. Move Zeroes 移动零
Given an array nums, write a function to move all 0's to the end of it while maintaining the relativ ...
- 【Python学习之三】流程控制语句
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 python3.6 一.条件分支if <条件判断1>: & ...
- docker安装+docker-compose
1.docker安装 yum install -y yum-utils device-mapper-persistent-data yum-config-manager --add-repo http ...
- Jenkins插件、war下载地址
1.jenkins的war包下载地址 地址:http://mirrors.jenkins-ci.org/,打开链接后,表格有war列,Releases行是短期更新包.LTS是长期更新包.一般选择Rel ...
- QT5 添加resource的方法
在工程中右键点击xxx.qrc文件,选择"open in editor",然后可以用"Add ""Remove"按钮进行资源文件的添加.
- mysql 按照两个字段之和进行排序
SELECT *,zan_num+fake_zan_num show_zan FROM `tf_news` order by show_zan desc TP实现 $news = M('news'); ...
- LeetCode 131. 分割回文串(Palindrome Partitioning)
131. 分割回文串 131. Palindrome Partitioning 题目描述 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串. 返回 s 所有可能的分割方案. LeetC ...
- input和while循环——Python编程从入门到实践
input( ) input()函数:让程序运行暂停,等待用户输入. message = input('Tell me something, and I will repeat it back to ...
- kubernetes 实践二:kubectl命令使用
这里记录kubernetes学习和使用过程中的内容. CentOS7 k8s-1.13 flanneld-0.10 docker-18.06 etcd-3.3 kubectl用法概述 kubectl是 ...
- PB连接ORALCE数据库方法
本地必须配置连接服务