scribble

sanlengjingvv

Blog GitHub

04 Nov 2013
QTP-点击不能识别的按钮

网页上传按钮,无法录制上“点击打开dialog(用于选择文件)”的操作 确定问题: Step1、使用 Object. 和 FireEvent ,回放失败。
Step2、直接访问 DOM ,回放失败。
Step3、使用虚拟对象,失败。
Step4、看了下代码,有 “uploadify.swf” ,右击上传按钮也识别为 Flash ,去安装了 Flex4 插件,仍然识别不了。
Step5、搜索几个代码关键字,确定使用了 Jquery 的 uploadify 控件。 Step6、查了帮助和官网,发现jQuery-support-in-QTP-UFT,支 持JqueryUI 不支持 Jquery Step7、分不清JqueryUI和Jquery,先安装了Jquery UI插件试一试,结果仍然识别不了。

决定模拟硬件,用 devicereplay 对象,代码如下:

Set devicereplay = CreateObject("Mercury.DeviceReplay") '创建DeviceReplay对象  
upl_x = Browser("").Page("").WebElement("").GetROProperty("abs_x") '获取上传按钮横轴绝对坐标  
upl_y = Browser("").Page("").WebElement("").GetROProperty("abs_y") '获取上传按钮纵轴绝对坐标  
devicereplay.MouseMove upl_x,upl_y'鼠标移动到上传按钮  
devicereplay.MouseClick upl_x,upl_y,LEFT_MOUSE_BUTTON '鼠标点击上传按钮  

在不同分辨率、窗口大小下测试,都可以回放成功。

11月18日更新:
找到解决方案,回放模式从event改为mouse即可,设置位置tools-options-GUI Testing-web-advanced-run settings-replay type
用代码控制:
Setting.WebPackage("ReplayType") = 2


Til next time,
黑水 at 14:56

scribble

Blog GitHub