既然获取的时候用value这个属性值,那么,如果要对搜索编辑框输入一个值该怎么操作呢?同样也是要用到value这个自身接口属性值。先让我们来回顾一下如何用封装接口进行赋值操作,代码如下所示:
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set "Yu Jie" |
紧接着,用自身接口的方式,代码如下所示:
Browser("百度一下,你就知道").Page("百度一下,你就知道")._ WebEdit("wd").Object.value = "Jerome Yu" |
最后,一起来见证是否调用自身接口也能为百度搜索框赋值,如图1-174所示。
在结束这个知识点的介绍前,作者再次强调自身接口是无法调用对象库中的对象属性值的,读者务必记住!此外,作者还要分享给读者一些需要注意的地方,相同的属性名在自身接口和封装接口中的显示有所不同,以最常见的INNERTEXT来举例,如图1-175和图1-176所示。
图1-175
图1-176
如图1-175和图1-176所示,我们可以看到,在自身接口中显示的是“innerText”,T是大写的,在封装接口中则显示的是“innertext”,全是小写。举个例子,假设前者innerText的值等于A,现在需要获取这个值,如果此时误写成innertext的话,获取的值将是一个空值,就完全与预期不一样了,所以,读者务必要注意到这点,一开始会很容易犯错,而这些小错误对于没经验的新人来说很难察觉到,因为代码并没有错,所以QTP也不会报错。
1.6.5 几种常见对象无法识别或识别错误的原因
对象库的整个学习过程即将结束了,无论是调用封装接口还是调用自身接口,它们都要有一个大前提,那就是对象能够被QTP识别。但是往往在自动化测试过程中,会碰到很多对象无法正确识别或识别错误的情况,作者进行了一下总结,以下几种原因是最常见的。
1.软件程序的对象控件无法被QTP识别
QTP毕竟不是万能的,很多软件的对象控件都无法识别到,尤其是C/S架构的软件程序,大多数控件都是WinObject。碰到这种情况,在第一章节中就说过了,此类项目是不适合用QTP做自动化测试的,当然如果必须要做自动化测试,通常有以下几种解决方案。
(1)设置虚拟对象。
先来知悉虚拟对象的方位,如图1-177所示。
图1-177