Java+Selenium3方法篇38-AutoIt工具处理文件上传

       关于文件上传,这边介绍一个第三方工具,叫AutoIt,简单来说,这个是一个能支持桌面GUI自动化的工具,它支持脚本语言编写。这里,我们用AutoIt来做文件上传的演示。在Selenium脚本中如果需要AutoIt来协助这个文件上传功能,大概步骤是这样的:

1. Selenium点击web产品上的文件上传按钮,弹窗上传框。

2.执行AutoIt实现准备好的脚本文件,这个脚本文件写了关于上传什么文件的一个.exe文件。

所以,我们先来介绍如何下载和安装AutoIt。

1)打开AutoIt的官网下载地址

https://www.autoitscript.com/site/autoit/downloads/

2)点击下载zip

两种下载方法都可以,这里我想下载的是zip,解压出来如下图.

3)点击SciTe文件夹,我们打开脚本编辑器。

4)打开百度图片上传窗口,同时打开AutoIt 脚本编辑器和元素定位器。

拖动元素定位器上那个靶点形状按钮到文件上传弹窗,能够捕获到一些元素信息。


5)在AutoIt脚本编辑器里输入如下脚本,不要下面我写的备注哈。

6)编译成一个.exe文件

先保存到本地,例如默认路径保存,名称为UploadFile.au3,然后在AutoIt脚本编辑器中点击Tools菜单,选择compile,会在同路径下生成一个UploadFile.exe的文件,我们把这个文件拷贝到桌面,待会在Selenium脚本要使用。

7)Selenium脚本执行UploadFile.exe文件,观察文件是否上传。

package lessons;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class UploadFile {
	public static void main(String[] args) throws Exception {  
        
	    System.setProperty("webdriver.gecko.driver", ".\\Tools\\geckodriver.exe");  
	          
	    WebDriver driver = new FirefoxDriver();  
	    driver.manage().window().maximize();  
	          
	    driver.get("https://www.baidu.com");  
	          
	    // 点击照相机这个按钮  
	    driver.findElement(By.xpath("//*/span[@class='soutu-btn']")).click();  
	          
	    // 点击本地上传图片  
	    driver.findElement(By.xpath("//*/input[@class='upload-pic']")).click();
	    // 执行桌面的AutoIt封装的脚本
	    Runtime.getRuntime().exec("C:\\Users\\Anthony\\Desktop\\UploadFile.exe");
	          
	     
	}
}
我这样用Firefox54.0是可以运行成功,如下图

       这里提醒一下,如果你在写AutoIt脚本的时候,用元素定位工具是在Firefox上抓的,那么你Selenium脚本的必须是FirefoxDriver,如果是chrome上抓的弹窗,就要换成chromeDriver,因为两个弹窗的title就不同。

       整个流程走下来,这么复杂,感觉有没有,所以,还是建议,选择Robot类来做文件上传操作。到时候再把Robot上传文件写成一个方法来调用,参数就是文件在磁盘的路径。



  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值