Selenium学习(五)---selenium解决上传文件问题之总结

一、上传文件框是input形式

  • 首先定位上传按钮
  • 发送要上传的文件
driver.findElement(By.id("XX")).sendKeys("D:\\20.jpg");

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

  • 当上传文件框不是input时,需要借助AutoIT这个工具
  • 工具下载地址
  • 注意一下,安装过程中32位还是64位,安装后,在开始菜单中会显示这些:
    这里写图片描述
    常用的三个组件:
  • AutoIT Window Info(x64) :用来定位
  • SciTE Script Editor :用来写脚本
  • Compile Script to .exe(x64):用来转换成exe

版本控制:selenium 3.5.0,firefox 20.0.1,火狐驱动:0.19.1

下面开始定位上传框:

  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,输入如下图, 双引号不要省略:
    这里写图片描述
    把脚本代码放进eclipse中,先定位上传文件按钮,

第一种写法:
driver.findElement(By.xpath("XXXX")).click();
String[] str = {"C:\\Users\\YBB\\Desktop\\upload.exe"};
try{
   Runtime.getRuntime().exec(str);
}catch(IOException e){
   e.printStackTrace();
}
第二种写法比较简便:
driver.findElement(By.xpath("XXXX")).click();
Runtime.getRuntime().exec("C:\\Users\\YBB\\Desktop\\upload.exe");

执行之后,上传成功!

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值