用watir做自动化测试时,经常会遇到上传文件弹出框,这时用AutoIt3来处理比较方便。如果是一般的上传一个文件,可以这样实现:
ai = WIN32OLE.new("AutoItX3.Control")
#图片数据目录获取
vpath = Dir.pwd
vpath = vpath.gsub(/TestCase.*/,'TestData/pic/3.jpg')
vpath = vpath.gsub("/",'\\')
ai.Send vpath
sleep 2
ai.Send('{ENTER}')
文件上传框出现后,鼠标默认定位在文件路径输入框内,所以直接将路径写进入,然后回车。。。
如果现在需要上传pic文件夹下面所有的图片,这时候输入文件路径是比较困难的。有一种解决方法,就是先把鼠标焦点转到文件夹下,然后用autoit模拟Ctrl+A,选择文件夹下面所有的图片。
#改变鼠标焦点
0.upto(6)do
ai.Send('{Tab}')
end
sleep 3
ai.Send("^a") #模拟Ctrl+A
ai.Send('{ENTER}')
注:文件上传框打开时,选择文件路径比较困难,所有下面的脚本可以在上面的脚本执行后再执行,可以保证下面打开文件上传框刚好定位到pic的目录下。
附:ruby移动文件
#将20.jpg移出pic文件夹
vpath = Dir.pwd
vpath1 = vpath.gsub(/TestCase.*/,'TestData/pic/20.jpg')
vpath2=vpath.gsub(/TestCase.*/,'TestData')
if File.exist?(vpath1)
FileUtils.mv(vpath1,vpath2)
end