在做web自动化的时候,如果碰到图片上传的场景,我们往往会用到AutoIT 插件来辅助。
场景1:上传单张照片
autoIt的代码编写如下:
方法一:写出图片的绝得路径
WinWaitActive("打开")
Sleep(500)
ControlSetText("打开","","Edit1","C:\Users\chengpeisheng\Desktop\001.png")
Sleep(500)
ControlClick("打开","","Button1");
方法二:写出图片的名称
WinWaitActive("打开")
Sleep(500)
ControlSetText("打开","","Edit1","001.png")
Sleep(500)
ControlClick("打开","","Button1");
用"Compile Script to .exe(x86)"将autoit 编写的代码编译打包成exe文件
用java代码执行exe文件
WebDriver driver = openBrowser("chrome");
driver.get("https://www.layui.com/demo/upload.html");
driver.findElement(By.id("test1")).click();
Thread.sleep(1000);
Runtime runtime = Runtime.getRuntime();
try {
runtime.exec("C:\\Users\\chengpeisheng\\Desktop\\cps.exe");
} catch (IOException e) {
e.printStackTrace();
}
Thread.sleep(2000);
}
场景2:上传多张图片
用绝对路径+分号的形式做路径会报错!
用双引号包住文件名,空格分割文件,不会报错,所以autoIT的编码要上传 "001.png" "002.png"
因为文件名是包含在双引号内,所以原本包住参数的双引号要变成单引号才可以,这样系统才能不转移双引号,语法也不会报错。
autoIt的代码编写如下:
WinWaitActive("打开")
Sleep(500)
ControlSetText("打开","","Edit1",'"001.png" "001.png"' )
Sleep(500)
ControlClick("打开","","Button1");
进行编译成exe文件后就可以用java代码运行了
java代码还是不变
WebDriver driver = openBrowser("chrome");
driver.get("https://www.layui.com/demo/upload.html");
driver.findElement(By.id("test1")).click();
Thread.sleep(1000);
Runtime runtime = Runtime.getRuntime();
try {
runtime.exec("C:\\Users\\chengpeisheng\\Desktop\\cps.exe");
} catch (IOException e) {
e.printStackTrace();
}
Thread.sleep(2000);
}