一般上传图片方法采取方案如下:

  • input标签的file类型上传图片,使用对象的sendkeys+路径方法
  • 使用js注入,再用使用对象的sendkeys+路径方法
  • 使用autolt生成的exe,打开对话框执行这个生成的exe
  • 脱离autolt上传,sendkeys方法,直接用鼠标键盘事件即可

前几日做脚本开发任务,遇到一个很坑的问题,就是上传图片不是标准的上传控件,用的是百度的上传控件,我用三个方案本地都实现了图片上传,都远程机回归测试遇到了一个坑,就是远程机执行回归测试,都会报错找不到文件或者干脆autolt或者键盘事件不执行,后来我发现个更神奇的事,就是你看着脚本执行,鼠标放到远程机对话框中,运行就通过了,后来查了度娘,知道原因了,jenkins调度上传图片的autolt生成的exe或者鼠标组合事件都因为权限不够不执行,但是我还是想把它完成。

解决方案:

  • 先点击打开选择图片对话框
  • nput标签的file类型上传图片,使用对象的sendkeys+路径方法
  • 关闭选择图片对话框
  • 成功上传图片了

提示:必须杀掉上传图片对话框的进程,要么还是不好使