首页 测试 工具 查看内容

QTP脚本如何修改编辑框的内容

2014-9-5 13:05| 发布者: | 查看: 446| 评论: 0

摘要:   问题的抛出:  下面名名是个编辑框,属性是webElement 的?为什么用SetTOProperty()方法不能修改innertext?我的目的很简单就是想用自动化脚本编辑这个编辑框的内容:  脚本按照如下写:  Browser(”浏览 ...

  问题的抛出:

  下面名名是个编辑框,属性是webElement 的?为什么用SetTOProperty()方法不能修改innertext?我的目的很简单就是想用自动化脚本编辑这个编辑框的内容:

  脚本按照如下写:

  Browser(”浏览器”).Page(”page/design_店铺装修”).Frame(”Frame”).webElement(”模块内容”).SetTOProperty”innerText”,”我想修改这块的内容”

  脚本执行完毕后,对象库里的属性值没有发生变化?难道SetTOProperty不起作用吗?问号一个个地出现~~~

  问题的解决:

  带着问题,开始一步步地寻找解决途径!上网查资料发现:

  原来在脚本中使用SetTOProperty对对象的属性进行修改,是不会真正改变对象库中对象的属性值,只是一个临时的修改,测试运行时生效,运行结束后结束,不会对对象库里的对象有任何影响。(哦,怪不得也不报错,也不对进行修改。得想想其他的方法)

  那么我们还有什么其他办法吗?

  仙人指点:测试对象还有一个“Properties”,叫Object,通过它,可以修改Run-time对象的属性值来达到修改目标的对象的属性值。通过Object Spy的方法,获取得该对象的Run-time:

  从上图中可以看到,WebElement有一个“innerText”属性,它的属性值也就是在程序中输入的文本内容。因此,如果使用“测试对象.object”的方法对innerText属性值进行修改,也就相当于在程序中手工输入了文本。

  将我们刚才的脚本修改下:

  Browser(”浏览器”).Page(”page/design_店铺装修”).Frame(”Frame”).webElement(”模块内容”).object.innertext=”我想修改这块的内容”

  达到我们预期的目标!

  总结:

  如果希望改变应用程序中对象的属性值,应该通过“Object.object”方法,来改变对象的属性!而使用测试对象的SetToProperty方法,只能临时改变仓库中对象的属性,对程序中的对象没有任何作用!

  关于SetToProperty方法和“Object.object”方法应该还有很多内容需要去挖掘吧~~做得越多,可能遇到的实际问题会越多,相应地会积攒我们越来越多解决问题能力。经验是一点一滴堆积起来的:重视每一个问题,积累每一滴经验。


鲜花

握手

雷人

路过

鸡蛋

扫一扫关注最新动态

毒镜头:老镜头、摄影器材资料库、老镜头样片、摄影
爱评测 aipingce.com  
返回顶部