关于不同版本软件复用同一个脚本的问题

由于项目的软件版本会逐渐递增,原来的测试脚本在新版本上执行的时候会出现

错误1.“The "App(1.0.1.0)-T(0.0.0." Dialog object was not found in the Object Repository.

错误2.“Cannot identify the object "App(1.0.1.0)-T(1.1.4" (of class Dialog). Verify that this object's properties match an object currently displayed in your application.

经过我一番研究,发现在下面的语句中

Dialog("App(1.0.1.0)-T(0.0.0").Activate    

括号内的“App(1.0.1.0)-T(0.0.0”其实是对象库里的对象名,而不是对象里的属性text:

(图1)

因为我尝试将该语句改为Dialog("text:=App(1.0.1.0)-T(0.0.0.1").Activate,运行时会出现错误1。

(图2)

但是text的value值也是很重要的,下面请看解释:我们可以查看Tools->Object Identification的Dialog对象的Mandatory Properties属性:

(图3)

Mandatory Properties属性是对象模型的必要属性,这个区域设置的属性在实际被测对象与对象库匹配时,只要有一个属性不一致就会报错。

这里规定匹配dialog时要匹配上text,所以如果text在对象库(如图2)中的值跟实际软件的text值不一致的话,就算是语句Dialog("App(1.0.1.0)-T(0.0.0").Activate中的对象写对了,也会出现错误2.(如果直接在Mandatory Properties属性区域去掉text检测项,运行时有可能出现匹配失败的情况)

因此总结一下就是:如果软件的版本号改变了,那么对应对象库的某些属性值(比如在上面的项目中指text的值)也要跟着改变。否则在新版本软件中执行该脚本就会出错。

 关于如何更新属性值,可以使用对象库界面上的“Update from Application”功能(如图4),点击该按钮可以随意更新同种类的控件。如果在做项目过程中出现对象其实没有改变,但是仍然由于对象识别不了而脚本报错,也可以使用对象更新功能,更新一下就好了。

(图4)

原文地址:https://www.cnblogs.com/bangbangjiang/p/3767585.html