AutoIt实现Webdriver自动化测试文件上传

在运用WebDriver进行自动化测试时,由于WebDriver自身的限制,对于上传文件时Windows弹出的文件选择窗口无法控制,通过在网上查找资料锁定使用AutoIt来控制文件上传窗口。

AutoIt工具的使用方法:

1、下载AutoIt之后双击Au3Info.exe打开定位器,如下图:

AutoIt实现Webdriver自动化测试文件上传

2、打开文件选择窗口页面

AutoIt实现Webdriver自动化测试文件上传

3、在AutoIt的定位器页面按住Finder Tool拖到文件选择窗口的“打开”按钮上,定位按钮的相关属性

AutoIt实现Webdriver自动化测试文件上传

AutoIt实现Webdriver自动化测试文件上传

依次定位保存按钮,使用ControlFocus方法,定位编辑框(文件名)title是“另存为”,class是Edit ,instance 是1

然后使用ControlSetText方法输入保存路径,定位保存按钮,使用ControlClick方法单击保存按钮。

AutoIt的脚本如下:(将下面的脚本打成可执行文件 如:upload_x86.exe)

步骤:

1、Selenium点击打开,打开选择文件窗口

2、AutoIt在弹出另存为窗口输入指定路径,单击保存

3、使用autoIt转换为EXE格式的可执行文件,使用java的runTime类调用

Runtime.getRuntime().exec("E:\\test\\upload_x86.exe");

脚本实现:

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

WinWait("[CLASS:#32770]","",3);

ControlSetText("打开","","Edit1",$CmdLine[1])

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

java自动化文件上传代码如下:(List<String> filepath上传多个文件)  

//处理上传文件窗口

public void attachmentWindowByautoIT(List<String> filepath) {

String execute_file = System.getProperty("user.dir");

execute_file+= "\\driver\\upload_x86.exe";

String cmd = "\""+execute_file+"\"";

String cmdline = "";

for(String s:filepath){

cmdline+=" \""+s+"\"";

}

cmd=cmd+" \""+cmdline+" \"";

try {

Process p = Runtime.getRuntime().exec(cmd);

p.waitFor();

} catch (Exception e) {

e.printStackTrace();

}

}

ps:该文章于2016年2月发布在51测试上,由于各种原因现在移至博客园

上一篇:angular.bind() 函数


下一篇:转 Perl函数返回值用法指导