java编写自动上传功能_【java+selenium3】自动化处理文件上传 (十三)

一、文件上传

文件上传是自动化中棘手的部分,目前selenium并没有提供上传的实现api,所以知道借助外力来完成,如AutoIt、sikuli。

AutoIt , 这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)的自动化操作,利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务;

AutoIt下载链接:https://www.autoitscript.com/site/autoit/downloads/ 或者点击下列图标进行下载!

1b801d66420a00d1a74ac6288203659a.png  485745b3e399fb8a001e6c8a124ef82e.png  46173e5c87afb5a9b16a8ff598d13fb7.png d511d9d7c38fea700da1b1b9ef6fbc72.png

1.下载后双击进行安装:autoit-v3-setup.exe

安装完成如下展示:

95efa6f010fe007a2a1fd2ea07da220d.png

2.上传脚本的编写

(1) 打开AutoIt Windows Info 工具,鼠标移动到Finder Tool,按住鼠标左键拖动到需要识别的windows控件上;

6d101b2d9a2e74bfa45ae704b37655c3.png

(2) 打开编辑器,根据控件Finder Tool识别到的信息来调用函数编写脚本;

54c21576594da135d349b79bb2e31149.png

;ControlFocus(("title","text",controllD)用于识别windows文件上传窗口

ControlFocus("打开","","")

;向文件名输入框输入本地要上传文件的路径

ControlSetText("打开","","Edit1","C:\Users\Administrator\Desktop\test\图片\baidu.png")

Sleep(2000)

;点击上传窗口中的“打开“按钮

ControlClick("打开","","Button1")

3.保存脚本文件为ChromFileUpload.au3格式

4.tools=>go,执行脚本验证(前提是windows窗口必须是打开状态)

脚本执行结束后:

019ccedd5c0c4f63302645a0f45d9214.png

5.为了这个脚本能被java 程序调用,需要通过Compile Script to .exe (x64)工具生成exe文件

1b116d8a047b80ee947b80f63d9ce4ad.png

提示Conversion complete转化完成:将ChromeFileUpload.exe拷贝到项目下

6.java代码执行exe文件

//实现文件上传。通过Runtime的静态方法获取Runtime对象

Runtime runtime =Runtime.getRuntime();//通过Runtime对象调用exe方法

runtime.exec("src/test/resources/ChromeFileUpload.exe");

7.实现文件上传整体代码如下:

packagecn.test;importorg.openqa.selenium.By;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.chrome.ChromeDriver;public classFileUpload {public static voidmain(String[] args) {

System.setProperty("webdriver.chrome.driver", "src/test/resources/chromedriver.exe");

WebDriver driver=newChromeDriver();try{

driver.get("file:///C:/Users/Administrator/Desktop/test/file_up_load.html");

driver.manage().window().maximize();

driver.findElement(By.id("fileUpload")).click();

Thread.sleep(3000);//实现文件上传。通过Runtime的静态方法获取Runtime对象

Runtime runtime =Runtime.getRuntime();//通过Runtime对象调用exe方法

runtime.exec("src/test/resources/ChromeFileUpload.exe");

Thread.sleep(5000);

}catch(Exception e) {

e.printStackTrace();

}finally{

System.out.println("执行结束,关闭浏览器");

driver.quit();

}

}

}

学习后总结,不足之处,后续修改,未完待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值