selenium——上传文件

一、上传文件框是input形式

首先定位上传按钮

发送要上传的文件

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

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

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

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

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

selenium——上传文件_第1张图片

常用的三个组件:

AutoIT Window Info(x64) :用来定位

SciTE Script Editor :用来写脚本

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

下面开始定位上传框:

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

selenium——上传文件_第2张图片

2、记录一下如下内容:

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

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

3. 再次定位打开按钮:

selenium——上传文件_第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,即可运行成功。如图:

selenium——上传文件_第4张图片

在cmd中测试:

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

selenium——上传文件_第5张图片

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

selenium——上传文件_第6张图片

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

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

执行之后,上传成功!

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

你可能感兴趣的:(selenium——上传文件)