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

本文介绍如何利用AutoIt工具辅助Selenium进行文件上传操作。通过编写AutoIt脚本并结合Selenium WebDriver(如FirefoxDriver),可以实现对文件上传弹窗的自动化处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       关于文件上传,这边介绍一个第三方工具,叫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上传文件写成一个方法来调用,参数就是文件在磁盘的路径。



AuAceBox 是 Skyfore 开发的一款 Au3 辅助工具:该工具涵盖了大多 数 Au3 编程常用操作,可完美替代官方的 AccAu3Box. 开发语言:AU3、C++、等等,所以文件偏大! 版本特点: 1.酷炫 UI,扁平化窗口设计 2.常用操作一键集成,绝对给力; 3.支持用户自定义工具,方便功能扩展,支持展开环境变量 使用帮助: 1.程序中大部分都有气泡提示,根据气泡提示操作即可。 2.配置 AuMFCompiler 1.程序默认不自带 AuMFCompiler,如果您需要使用,请根据以下步骤配置: 2.到 Au3.Cc -> AuMFC专区 花200A币下载 AuMFC 3.打开主程序 AuAceBox.exe 打开 主菜单 -> 扩展功能 -> 配置 AuMFC 编译器 4.根据提示操作,完成后您就可以直接在主界面调用 AuMFC 编译器了! 3.创建桌面方式 1.如果您觉得本工具好用的话,可以按以下步骤直接创建快捷方式: 2.打开主程序 AuAceBox.exe 打开 主菜单 -> 扩展功能 -> 程序设置 -> 选中 为 AuAceBox 创建桌面快捷方式 即可! 3.然后桌面上就会跳出快捷方式 "AuAceBox 专业版",OK,以后您就可以直接通过快捷方式运行本工具了 4.用户自定义工具 1.AuAceBox v2.1+ 版本提供用户自定义工具功能 2.点击 首页大图标 -> 实用工具汇总 -> 用户工具 -> 配置用户工具箱 即可配置工具3.工具格式:每行一个工具,格式如: 工具名=路径(或URL) 4.自定义工具支持如下环境变量: %APPDIR%:AuAceBox.exe 所在目录 %AU3DIR%:AutoIt3.exe 所在目录 %ScriptFile%:载入 Au3 脚本路径 5.检查更新窗口弹出为何有延时 1.更新先获取网络版本号,更新日志,更新地址 2.再显示更新窗口,所以会有些延迟,具体时间与网络环境有关 6.本程序是否开源 1.对不起,本程序为闭源程序,未来也不打算开源 2.要问原因?1.这个程序本来就没什么开源价值 2.伸手党泛滥... AutoIt v3 编程交流学习网 - Au3.Cc 版本更新日志: [2015/3/7 2.1.2.6] 1.修正 取消所有窗口半透明 2.修正 更新窗口若无可用更新自适应为 初始化程序 3.新增 原生支持托盘功能,适应不同用户需求 4.新增 托盘双击显示、隐藏主窗口 5.新增 托盘显示 内置/用户 工具 6.修正 关于对话框标题栏显示程序版本号 7.新增 Ctrl+F12 显示隐藏主界面 8.修正 AuAceBox 更新逻辑 9.新增 AuAceBox 设置中心 AuAceManager 10.新增 支持手动限制自动吸附 11.优化 AuAceBox 吸附效率/未知吸附情况 12.修正 新功能增加后对应控件/托盘说明 [2015/3/5 2.1.2.4] 1.新增 检查更新功能 2.新增 AuAceBox 专属浏览器 3.新增 修正 N 多窗口主题 4.新增 无人值守自动更新 功能 5.新增 Au3.Cc 链接支持两种打开方式 6.修正 菜单文字以及描述 7.修正 访问网站链接指向 AuAceBox 专属浏览器. 8.修复 2.1 版本中的某些 BUG. 9.修正 关于页文字说明来自 ReadMe.Txt (如果存在) 10.优化 保证效率下减小附加组件内存及CPU占用率 [2015/3/2 2.1.0.34] 1.删除 Au3 脚本录制工具链接 2.新增 内置实用工具 ,用于放置 AU3 辅助工具,从此本人写的所有 AU3 辅助工具就都会直接嵌入至 AuAceBox ! 3.新增 GUID 生成器; 4.新增 RegExTester 内嵌插件,绝对给力! [2015/3/2 2.1.0.9] 1.调整 根据用户反馈,调整编译栏背景色 2.修正 部分文字描述 [2015/3/1 2.1.0.6] 1.调整 调整UI,使其看起来更和谐; 2.修正 AuAceBox.Tool 增加部分工具; [2015/3/1 2.1.0.5] 1.修正 修复1.0版本的 N 多 BUG; 2.修正 完全重写代码,加快程序运行速度 3.新增 用户自定义工具功能 4.修正 窗口乱跑的问题 5.去除 托盘,用户定义工具集成于图标菜单 6.新增 支持程序环境变量(支持系统原有的如%WINDIR%) %AU3DIR% %APPDIR% %ScriptFile%
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值