利用QTP对编辑框内容进行编辑
上一篇 /
下一篇 2010-03-15 13:54:11
下面名名是个编辑框,属性是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方法,只能临时改变仓库中对象的属性,对程序中的对象没有任何作用!
收藏
举报
TAG: