selenium——上传文件

一、上传文件框是input形式

首先定位上传按钮

发送要上传的文件

driver.findElement(By.id("XX")).sendKeys("D:\\20.jpg");

二、上传文件框不是input形式

当上传文件框不是input时,需要借助AutoIT这个工具

下载地址:https://www.autoitscript.com/site/autoit/downloads/

注意一下,安装过程中32位还是64位,安装后,在开始菜单中会显示这些:

常用的三个组件:

AutoIT Window Info(x64) :用来定位

SciTE Script Editor :用来写脚本

Compile Script to .exe(x64):用来转换成exe

下面开始定位上传框:

1、将Finder Tool拖拽到文件名处,如图:

2、记录一下如下内容:

Title=打开,ClassnameNN=Edit1,Class=#32770

注:每个浏览器打开的上传框的title不一样,需注意。

3. 再次定位打开按钮:

4、记录如下内容:

ClassnameNN=Button1

5、打开SciTE Script Editor 开始写脚本:

;ControlFocus("title" ,"text",controlID)定位到打开窗口

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

;等待元素出现,时间为20s

WinWait("[CLASS:#32770]","",20)

;设置上传的文件

ControlSetText("打开","","Edit1","C:\Users\YBB\Desktop\1.png")

;点击上传按钮

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

测试是否成功的方法:

在浏览器中测试:

点击上传文件按钮后,弹出选择文件框,运行脚本时,要保证此窗口打开状态,在SciTE Script Editor中点击Tools的GO,即可运行成功。如图:

在cmd中测试:

首先要将SciTE Script Editor中编写的脚本转换成exe文件,就需要用到Compile Script to .exe(x64),打开后如图

打开cmd,输入如下图, 双引号不要省略:

driver.findElement(By.xpath("XXXX")).click();

Runtime.getRuntime().exec("C:\\Users\\YBB\\Desktop\\upload.exe");

执行之后,上传成功!

如果遇到upload.exe不好用,重新保存一次就好了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容