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

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

错误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)

关于不同版本软件复用同一个脚本的问题,布布扣,bubuko.com

时间: 2025-01-16 19:51:27

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

实现同一个脚本多次运行,系统中只有一个进程

编写脚本,实现同一个脚本多次运行,系统中只有一个进程 [email protected] scripts]#cat pid.sh #!/bin/sh pidpath=/tmp/a.pid if [ -f "$pidpath" ]   then     kill `cat $pidpath` >/dev/null 2>&1     rm -f $pidpath fi echo $$ >$pidpath sleep 300 测试如下 [email protecte

同一个脚本在SQLPLUS和SQLDEV上的不同

前几天收集了信息给Oracle,oracle那边表示格式不对,让我重新收集,我很费解,我是按照官方文档做的呀,怎么会? 于是我果断自己搭了一个环境:RHEL5.8+10.2.0.5 客户那边没法登陆操作系统,使用的SQLDEV中cmd窗口生成的html文件,打开之后确实不好看: 然后我在操作系统上生成html文件之后: 变好看多了. 同一个脚本,在不同的工具上,生成的html竟然有这么大的区别!! 差不多再去客户那里走一遭了...

LoadRunner同一个脚本运行两次结果相差很大的原因

如果同一个脚本运行两次结果相差特别大.后一次的响应时间比前一次的响应时间慢了特别多,而期间开发又未修改过程序排查问题: 1.查看下linux内存利用情况 free -m 是查看内存情况 (通常可用内存占10%是可接受范围内) 如果可用内存很小的话 :一种可能是程序有问题 :另一种可能是磁盘空间不足了 当磁盘空间不足就会去写内存 2.可以先看下第二种情况成立否 : 命令 tf -m 查看磁盘空间情况结果看到磁盘空间为0了 3.查看哪个进程占用了这么多 ,最好通过log日志进行分析.在运行性能测试脚

shell小技巧--用“$$”和"$0"防止同一个脚本启动多次

在编写shell脚本通过crontab定时任务启动时,如果shell脚本执行时间超过了,crontab拉起脚本的时间间隔,这个时候可能就会出现同一个脚本同时启动多次的现象.这个时候可能会导致采集的数据有重复,计算不准确等等问题,在这种有明显先和顺序要求的时候,就会出问题. 需要采取一定手段,防止这种现象.刚好可以用"$$"和"$0",来实现这个需求,实现只有等当前脚本执行完成之后,才能启动第二次执行.好了,废话不多说,直接贴一个demo,只要稍加改动,就可以套用到自

java_jdk_JDK版本切换批处理脚本

我们平时在window上做开发的时候,可能需要同时开发两个甚至多个项目,有时不同的项目对JDK的版本要求有区别,这时候我们可能会在一台电脑上安装多个版本的JDK,如下图所示: 当我们想要切换使用的JDK版本时,我们可以有两种做法: 1.手动去修改JAVA_HOME环境变量,将变量的值指向对应的JDK版本的安装目录即可. 2.通过编写批处理脚本来根据选择的JDK版本动态修改JAVA_HOME环境变量的值,这是一种偷懒的做法,这种做法需要一个RefreshEnv.exe辅助软件来刷新环境变量的值 在

一.JDK版本切换批处理脚本

我们平时在window上做开发的时候,可能需要同时开发两个甚至多个项目,有时不同的项目对JDK的版本要求有区别,这时候我们可能会在一台电脑上安装多个版本的JDK,如下图所示: 当我们想要切换使用的JDK版本时,我们可以有两种做法: 1.手动去修改JAVA_HOME环境变量,将变量的值指向对应的JDK版本的安装目录即可. 2.通过编写批处理脚本来根据选择的JDK版本动态修改JAVA_HOME环境变量的值,这是一种偷懒的做法,这种做法需要一个RefreshEnv.exe辅助软件来刷新环境变量的值 在

Linux下C/C++版本发布自动脚本

软件发布有软件版本管理原则,这里结合Linux下C/C++项目发布方式,简单介绍一下如何自动的集成动态版本管理脚本. 软件版本发布关键点 从软件版本管理原则我们需要注意的是以下几个关键点: ==>主版本(VER_MAJOR):项目(产品)负责人维护 ==>次版本(VER_MINOR):技术(版本)接口人维护 ==>版本号(VER_REVISION):代码库自动升级更新 ==>编译日期(BUILD_DATE):编译机器的系统日期 ==>编译时间(BUILD_TIME):编译机器

Kubernetes v1.9.1 单机版本一键安装脚本

#!/bin/bash # ---------------------------------------- # kubernetes v1.9.1 单机一键部署脚本 # 用于实验环境 # CentOS 7.2.1511下测试OK # Powered by Jerry Wong # 2018-03-15 [email protected] # ---------------------------------------- function get_local_ip() { IP_ADDR=`i

Fedora 22(15以上版本)开机自启动脚本

前段时间做了一个网站btdog磁力与btdog电视直播.DHT爬虫需要消耗比较多的资源,原来的服务器不够用了,于是自己使用电脑搭了一台服务器,使用Fedora22系统.在Fedora22中自动写了些开机自启动脚本,但始终找不到放在哪里.折腾了下,发现原来Fedora 从15开始,系统初始化软件开始由initscript转向了systemd方式,原来要写开机启动脚本一般写在rc.local里面,但现在rc.local已经不存在了,不过systemd仍然有rc-local服务. 编辑/usr/lib