Selenium+autoit+java 上传文件

来源:互联网 发布:淘宝小号信誉查询 编辑:程序博客网 时间:2024/04/30 15:26

【1】selenium: 触发点击事件打开上传控件

【2】autoit:控制windows组件【注意点:.au3文件是源文件,执行文件是exe;若在源文件界面F5运行会报错“拒绝访问”】
(http://img.blog.csdn.net/20160422145924983)
上传文件代码如下:(存放在D:\autoit\upload.exe)

;first make sure the number of arguments passed into the scripts is more than 1
If CmdLine[0]<2ThenExitEndIf;ifparmasnum<2,thenbreak;CmdLine[0] ;参数的数量
;CmdLine[1];();CmdLine[2] ;第二个参数
;都是从cmd传入参数
handleUpload(CmdLine[1],CmdLine[2])

;定义上传函数,有两个参数,第一个是浏览器名字,第二参数是文件路径
Func handleUpload(browser,uploadfile)
Dim title;title;titleIfbrowser=”ie” Then ; 代表IE浏览器
title=ElseIfbrowser=”chrome” Then ; 代表谷歌浏览器
title=ElseIfbrowser=”firefox” Then ; 代表火狐浏览器
$title=”文件上传”
EndIf

        if WinWait($title,"",4) Then ;等待弹出出现,最大等待时间是4秒               WinActivate($title)                  ;找到弹出窗口之后,激活当前窗口               ControlSetText($title,"","Edit1",$uploadfile)   ;把文件路径放入输入框,此”Edit1“是用FinderTool获取到的               ControlClick($title,"","Button1")                ;点击保存或者打开或者上传按钮,此“Button1”使用FinderTool获取到的        Else        Return False        EndIf

EndFunc

【3】JAVA:调用autoit的exe文件

import java.io.File;

public class base {

static void publicvoidhandleUpload(String browser, String str) {     File file = new File(str);    String filePath= file.getAbsolutePath();    String executeFile= "D:\\autoit\\upload.exe"; //定义了upload.exe文件的路径    String cmd= "\""+ executeFile+ "\""+ " "+ "\""+ browser+ "\""+ " "+ "\""+ filePath+ "\"";    try{        Process p= Runtime.getRuntime().exec(cmd);        p.waitFor();    } catch(Exception e) {        e.printStackTrace();    }}
0 0