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

发表于:2009-7-06 17:09

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:琼香    来源:Taobao QA Team

  问题的抛出:

  下面名名是个编辑框,属性是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”方法应该还有很多内容需要去挖掘吧~~做得越多,可能遇到的实际问题会越多,相应地会积攒我们越来越多解决问题能力。经验是一点一滴堆积起来的:重视每一个问题,积累每一滴经验。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号