Selenium如何上传多张图片
来源:互联网 发布:linux同步软件 编辑:程序博客网 时间:2024/05/22 05:15
这个是在本人的自动化测试项目中遇到的问题,本来就是一个简单的上传图片的问题。分为上传一张图片和多张图片,在这个测试项目中多张图片限制为三张图片
一张图片:
三张图片:
在此说一下我的心路历程,一张图片的上传用了两种方法均可以。
一种直接用sendkeys方法上传
driver.findElement(By.className("upload-fileinput")).sendKeys("E:\\123.jpg");
另外一种用AutoIT方法上传。用AutoIt的原因是selenium无法识别windows的窗口,所以要借助autoIT工具来实现。
AutoIt脚本
;ControlFocus("title","text",controlID) Edit1=Edit instance 1ControlFocus("选择要加载的文件", "","Edit1"); Wait 10 seconds for the Upload window to appear WinWait("[CLASS:#32770]","",10); Set the File name text on the Edit field ControlSetText("选择要加载的文件", "", "Edit1", "F:\\pic\\1.png") Sleep(2000); Click on the Open button ControlClick("选择要加载的文件", "","Button1");
最后一定要用AutoIt编译成.exe文件,才可以被调用。
这样上传一张图片的问题就被解决了。但是在上传组图的时候,上述两种办法都没有办法完美解决。AutoIt曾经遇到过一次可以成功解决上传三张图片的问题,但是多次执行代码,效果不佳。所以后来想到借助另外一种办法sikulix来解决上传三张图片的问题。
1、首先在pom.xml中添加依赖
<dependency> <groupId>com.sikulix</groupId> <artifactId>sikulixapi</artifactId> <version>1.1.0</version> </dependency>
2、将windows窗口中需要操作控件的图片截图保存下来
3、将需要上传的图片保存在某个路径
4、在测试脚本中调用sikulix
driver.findElement(By.xpath("(//input[@type='file'])[1]")).click();// 在Windows上操作打开按钮 Screen s=new Screen();// 定义要上传的图片存放路径 String imgPath_p="F:\\pic\\";// 定义sikulix的图片存放路径 String imgPath_s="D:\\sikulix\\"; s.type(imgPath_p+"1.png"); s.click(imgPath_s+"open.png"); Thread.sleep(3*1000); driver.findElement(By.xpath("(//input[@type='file'])[2]")).click(); s.type(imgPath_p+"2.jpg"); s.click(imgPath_s+"open.png"); Thread.sleep(3*1000); driver.findElement(By.xpath("(//input[@type='file'])[3]")).click(); s.type(imgPath_p+"3.jpg"); s.click(imgPath_s+"open.png"); Thread.sleep(3*1000);
接下来你会发现,执行脚本,三张图片成功上传
总结一下:上传图片的方式有三种:第一种直接用sendkeys方法,一般是针对input按钮;第二种是借助于AutoIT工具;第三种就是借助于sikulix。反正遇到问题就是多尝试咯。
阅读全文
2 0
- Selenium如何上传多张图片
- 多张图片上传
- 上传多张图片
- 上传多张图片
- 多张图片上传
- php上传多张图片
- PHP 上传多张图片
- IOS 上传多张图片
- php上传多张图片
- 多张图片上传afnetworking
- iOS上传多张图片
- php多张图片上传
- Retrofit 上传图片(多张)
- iOS多张图片上传
- IOS 上传多张图片
- 批量上传多张图片
- Ajaxfileupload上传多张图片
- AFNetworking上传多张图片
- jmeter后置处理器-正则表达式提取器
- 史上最全自媒体推广工具
- Qt的下载及安装——开始Qt之旅
- SSM利用接口的方式上传文件,js调用接口上传文件,ajax利用接口上传文件
- 高通camera整体架构分析之端口模块篇
- Selenium如何上传多张图片
- 服务器命令查看各种信息
- Java线程的生命周期的深入理解
- simulink问题集锦
- WordPress主题制作全过程(十):制作comments.php
- 详解设计模式六大原则
- 关于jQuery中hover事件的一个小bug
- Buffer源码深入分析
- AdaBoost算法应用