本人是一个 selenium webdriver 的初学者,之前对于自动化是一个白痴,不过经过半年的自学和摸索总算是可以将自己所学运用到自己http://testerhome.com/topics/new?node=2#的实际工作上了,在这自学过程也算是痛苦并快乐着,刚开始总算遇到很多问题,步履维艰,经常会碰到无法定位的控件元素。
今天我就在这里讲解个人认为最难解决的控件,flash 上传图片。很多电商为了达到页面和谐完美的效果都会插入一些 flash 控件,虽然页面效果好了但是对于我们这些做自动化测试的人员就苦逼了.

为了实现自动化对 flash 控件的处理我们需要借助第三方工具 autoit3,需要的话可以去百度搜索下载。
安装好后倒入代码库:

from win32com.client import Dispatch
#调用autoit 控件来处理flash文件上传控件
   autoit=Dispatch("AutoItX3.Control")
   autoit.MouseClick("left",557,604,1)
   autoit.Send("D:\\120.jpg")
   autoit.MouseClick("left",503,446,1)

如何精确定位元素所在像素位置,可以用 autoit 自带工具, Autoit window info

说白了很简单就是运用 autoit 工具来控制鼠标移动到 flash 所在位置然后模仿人的点击动作,最大的缺点是可移植性差,如果换台分辨率不同的电脑就需要重新定位。

以上只是本人找到的比较笨的方法,希望对大家有用,若哪位大牛有更好的方法,可以指点指点小弟。


↙↙↙阅读原文可查看相关链接,并与作者交流