关于webdriver上传文件功能的一些补充
2015-12-09 16:04
337 查看
最近有同事反应做公司供应商管理平台上传产品的自动化测试时候发现,上传图片 使用 webdriver的 sendkeys不管用,后来从浏览器打开开发者工具看看 这个块的前端代码 发现如下问题:
开发在这里用了 button 而不是 input 当然这不是关键,关键在与 点击此button后 需要出发一个js事件 ngf-select="choseFile($file,'main')" 然后将图片转成 base64位字节码,并动态添加到当前 的DOM中,而直接调用 webdriver 的sendkys方法 是不会触发button的这个js监听的事件的,自然也就不会出现把图片转成 base64位加密字节码,并动态添加到当前 的DOM中,而是直接出发
file类型控件的添加文件事件,但是,在我们这个后台添加产品的保存功能需要验证 当前页面是否有图片的64位字加密节码的, 如果不存在则提示没有产品图片,添加产品失败,问题就出现了,通过sendkeys上传图片 没有触发相关事件 而导致了 产品无法上传,怎么办 ?
经过网上一阵子搜,发现使用一个 叫做 autoit的第三方工具可以 实现 模拟在文件选择窗口 输入文件地址并保存的功能,这样我们就可以点击 上传文件按钮 并启动autoIt去操作文件选择窗口上传文件了 ,不知道我们这个开发是怎么想的,不用传统的方式,非要自己造个轮子,唉! auotIt用法网上有资料里就不赘述了,推荐如下 blog地址,此博主大牛做的很不错了:
http://www.cnblogs.com/fnng/p/4188162.html
开发在这里用了 button 而不是 input 当然这不是关键,关键在与 点击此button后 需要出发一个js事件 ngf-select="choseFile($file,'main')" 然后将图片转成 base64位字节码,并动态添加到当前 的DOM中,而直接调用 webdriver 的sendkys方法 是不会触发button的这个js监听的事件的,自然也就不会出现把图片转成 base64位加密字节码,并动态添加到当前 的DOM中,而是直接出发
file类型控件的添加文件事件,但是,在我们这个后台添加产品的保存功能需要验证 当前页面是否有图片的64位字加密节码的, 如果不存在则提示没有产品图片,添加产品失败,问题就出现了,通过sendkeys上传图片 没有触发相关事件 而导致了 产品无法上传,怎么办 ?
经过网上一阵子搜,发现使用一个 叫做 autoit的第三方工具可以 实现 模拟在文件选择窗口 输入文件地址并保存的功能,这样我们就可以点击 上传文件按钮 并启动autoIt去操作文件选择窗口上传文件了 ,不知道我们这个开发是怎么想的,不用传统的方式,非要自己造个轮子,唉! auotIt用法网上有资料里就不赘述了,推荐如下 blog地址,此博主大牛做的很不错了:
http://www.cnblogs.com/fnng/p/4188162.html
相关文章推荐
- 静态表查找--顺序表的查找(有序)--折半查找
- Java单例设计模式
- varnish(笔记)
- javascript笔记
- 随机生成给定范围内N个不重复的数
- 目标检测学习_1(用opencv自带hog实现行人检测)
- 九宫格主页布局的实现
- Relativelayout属性
- Oracle临时表(即:Oracle 全局临时表)的语法
- Jenkins构建Android项目持续集成之系统配置篇
- 试用 OPENVMS V8.4-1H1
- Android监听ScrollView控件的滑动起始和结束事件
- 将shp中的多条属性分割为多个shp文件
- 在宏里访问结构体的成员 - rust
- MVC 页面实现ajax刷新联动下拉列表
- Ansible@一个有效的配置管理工具--Ansible configure management--翻译(四)
- php封装文件上传
- 分词 正文提取 java
- 如何在python中读写和存储matlab的数据文件(*.mat)
- 1209实验三评论