以下方法均以QQ邮箱首页为例:QQ邮箱,登陆、验证信息直接设定等待时间,手动点击进入到“写信”界面即可
方法1:直接input上传 input->sendkeys
public class test13 {
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver","E:\\ceshiruanjian\\chromedriver_win32\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://mail.qq.com/");
Thread.sleep(20000);
driver.findElement(By.name("UploadFile")).sendKeys("E:\\测试\\test.docx");
}
}
方法2:第三方工具——autolt V3
在使用selenium做自动化测试web应用时,就会遇到一个问题就是,当使用selenium自动化点击了网页中上传文件的按钮后,弹出一个选择文件的弹框,由于这个弹框是属于操作系统的而非浏览器,selenium程序就无法进行后续的操作了,这时侯就我们就可以使用AutoIt编写自动化脚本,来执行后续的自动选择文件的操作。
写清楚autolt代码,直接运行即可
相关链接:全网最全AutoIt3基础教程及实战案例_autoit v3_River_何的博客-CSDN博客
方法3:java代码去执行exe文件
1)编写好脚本,打包成exe
2)selenium写好脚本打开上传附件窗口
3)通过java代码去执行exe文件
public class test16 {
public static void main(String[] args) throws InterruptedException, IOException {
System.setProperty("webdriver.chrome.driver",
"E:\\ceshiruanjian\\chromedriver_win32\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://mail.qq.com/");
Thread.sleep(8000);
//进入frame框架
driver.switchTo().frame("mainFrame");
driver.findElement(By.id("AttachFrame")).click();
Thread.sleep(2000);
//执行exe文件
Runtime run = Runtime.getRuntime();
run.exec("E:\\ceshiruanjian\\autoit-v3-setup\\java.exe");
}
}