QTP获取extjs框架下的页面对象(一)

近来使用QTP录制使用extjs框架编写的web软件,遇到诸多问题,而google上资料甚少,所以把一些心得总结于此。

extjs的页面对象会用很多WebElement替代link,button等传统html对象。这样虽然让整个web页面做的仿windows操作系统,但给qtp自动化测试的介入带来了不少问题。闲话不多说,直入主题。
假设页面有两个图标,名称分别为图标1和图标2,点击分别可以打开列表1和列表2
点击页面两个图标的录制结果
Browser("mike").Page("mike").WebElement("WebElement").FireEvent"onmouseover"
Browser("mike").Page("mike").WebElement("WebElement").Click
Browser("mike").Page("mike").WebElement("WebElement_2").FireEvent"onmouseover"
Browser("mike").Page("mike").WebElement("WebElement_2").Click

上面4行vbs代码,用qtp回放,qtp是很难找到目标图标的,因为WebElement参数值始终随着页面的变化而动态变化。希望qtp能够按希望找到2个图标解决办法如下。

1.使用关键字驱动
进入resources->Object Repository,将WebElement重命名为图标1,WebElement_2重命名为图标2,发现代码变为
Browser("mike").Page("mike").WebElement("图标1").FireEvent"onmouseover"
Browser("mike").Page("mike").WebElement("图标1").Click
Browser("mike").Page("mike").WebElement("图标2").FireEvent"onmouseover"
Browser("mike").Page("mike").WebElement("图标2").Click

回放脚本,发现qtp可以找到图标并且点击成功。

如果图标1和图标2的名称为空,那这两个图标成为无依无靠的webelement。那必须使用第二种办法
2.描述性编程
使用object spy将两个图标加入对象库,会发现这两个webelement的父节点为page("mike")并且图标有很多属性值,其中的大部分属性值会因为extjs或者web页面的变化而变化。找到其中不变的属性,使用描述性编程关联到该两个图标。代码如下
Set MyDescription =Description.Create() '创建对象描述,包括属性名和属性值
MyDescription("micclass").Value="WebElement" 
'属性名为micclass,属性值为WebElement
MyDescription("@属性名").Value="@属性值" '不变的属性值和属性名来区分其他的WebElement
Set MyChildObject = Browser("mike").Page("mike").ChildObjects(MyDescription) 
'将WebElement作为Page("mike")的子节点
msgBox MyChildObject.Count '弹出窗显示子节点个数
ChildObjectsCount = MyChildObject.Count 
'循环点击每个WebElement
For Counter=ChildObjectsCount-1 to 0 step -1
 
MyChildObject(Counter).Click
Next

extjs的WebElement对象有它的类属性是micclass,使用该语句可以找到页面所有的WebElement。

使用方法2,可以减少使用object spy的繁琐步骤,并且代码的可移植性和重用性较强。 该方法一般适用于页面上没有name的对象,比如关闭按钮,翻页按钮等等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值