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

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

 

AutoIt工具的使用方法:

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

 

 

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

 

 

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

 

 

依次定位保存按钮,使用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测试上,由于各种原因现在移至博客园

posted @ 2017-01-03 10:45  心之歌  阅读(443)  评论(0编辑  收藏  举报