SecureCrt脚本(一)顶级对象之Crt
Crt自动化 测试 SecureCrt脚本 JS脚本
1、引言
Crt脚本的实现需要使用Crt定义好的各个对象的属性和方法来实现,脚本函数系列将逐一介绍Crt脚本中最常使用的对象,对这些对象以层级关系画出,本篇首先介绍顶级对象。crt的属性和方法。属性是一个静态的对象,方法是具体执行的动作。属性和方法底下还可以有子属性和子方法,这个其实就和面向对象的编程方式很像,有些基础的人应该会很快掌握。
2、关于脚本表头
解释
在学习脚本函数前,先说说在脚本中头两行(必须写在头两行,且最好不要有空格回车之类的字符)所必须添加的标识,这两行标识告诉Crt当前执行的脚本需要使用什么解释器进行解释。其中language为语言,现支持Jscript、VBScript、Python、Perl,interface为接口,现在都是1.0,以下为示例,修改对应的语言即可
代码
- JS
# $language = "JScript"
# $interface = "1.0"
- python
# $language = "Python"
# $interface = "1.0"
3、顶级对象'crt'的子属性和方法
属性 方法 Dialog GetActiveTab Screen GetScriptTab ScriptFullName GetTabCount Session GetTab Version Quit Window Sleep
3.1、属性
3.1.1、Dialog
解释
定义了一个Dialog(对话框),通过这个对象,可以通过调用该对象的子属性和方法实现对话框的相关功能。
代码
- JS
var diaObj = crt.Dialog;
3.1.2、Screen
解释
定义Screen(屏幕)对象,该对象是整个脚本中的灵魂,包含数据抓取、数据发送、等待数据等等重要功能都是有该对象的子属性和方法实现的。
代码
- JS
var scrObj = crt.Screen;
3.1.3、ScriptFullName
解释
该对象返回当前执行脚本的全名,其中包含脚本路径和脚本名,可以使用中文路径和文件名。
代码
- JS
var scrName = crt.ScriptFullName;
3.1.4、Session
解释
定义当前会话属性,该属性有许多很实用的属性和方法可以使用。同样作为后重点关注
代码
- JS
var sessionObj = crt.Session;
3.1.5、Version
解释
返回当前Crt的软件版本,通常该属性用于比较版本新旧,以处理在不同版本上不能兼容的问题。
代码
- JS
// 检查Crt版本,如果低于7.3,则退出Crt。
crtVer = crt.Version;
if ( crtVer < 7.3 ) {
crt.Quit();
}
3.1.6、Window
解释
返回当前程序的窗口对象,该对象下有子对象,可以实现诸如隐藏当前窗口等的功能。
代码
- JS
var crtWin = crt.Window;
3.2、方法
3.2.1、GetActiveTab()
解释
Crt软件的管理是多Tab的,该方法返回当前活跃状态的Tab界面,该界面作为一个新的Tab属性使用,而Tab属性本身又有许多子属性和方法,因此该方法也是比较实用的一个函数。
代码
- JS
var actTab = crt.GetActiveTab();
3.2.2、GetScriptTab()
解释
获取当前脚本执行的Tab对象,该对象有一些子对象和方法,通过获取Tab页面,可以轻松的实现在多个Tab中同时发送数据的功能。
代码
- JS
// 获取当前脚本执行的Tab,并获取编号(Index从1开始)
var scriptTab = crt.GetScriptTab();
var tabNum = scriptTab.Index;
// 在当前Tab上发送数据
scriptTab.Screen.Send("脚本执行的Tab是:"+tabNum);
3.2.3、GetTabCount()
解释
获取当前总Tab数目,是一个数值类型返回值。
代码
- JS
// 获取总Tab数目
var tabCount = crt.GetTabCount();
3.2.4、GetTab(Index)
解释
获取某个位置的Tab对象,该位置即为tab的Index,从1开始,即从当前Crt窗口的最左侧Tab数起。
代码
- JS
// 获取指定编号的Tab对象
var tabCount = crt.GetTabCount();
var gTab = "";
// 从Tab1到所有Tab依次发送数据
for ( var i = 1 ; i <= tabCount; i++ ) {
gTab = crt.GetTab(i);
gTab.Screen.Send("当前Tab为:"+i);
}
3.2.5、Sleep(millisecond)
解释
脚本暂停运行时间,millisecond:毫秒 该功能是极为常用的功能
代码
- JS
// 获取指定编号的Tab对象
var tabCount = crt.GetTabCount();
var gTab = "";
// 从Tab1到所有Tab依次发送数据
for ( var i = 1 ; i <= tabCount; i++ ) {
gTab = crt.GetTab(i);
// 暂停5秒再发送数据
crt.Sleep(5000);
gTab.Screen.Send("当前Tab为:"+i);
}
3.2.6、Quit()
解释
退出Crt软件。(不是退出脚本,是直接退出软件。)
代码
JS
// 如果直接使用crt.Quit的话只要有会话是激活的,那么就会有弹窗出来,因此,可以使用for循环,先将所有Tab断连,再退出。 // 断连所有Tab
var tabCount = crt.GetTabCount();
var gTab = "";
for ( var i = 1 ; i <= tabCount; i++ ) {
gTab = crt.GetTab(i);
gTab.Session.Disconnect();
}
// 此时可以直接退出Crt
crt.Quit()
总结
1. 在写脚本时一定要添加前言所述的脚本头部两行,且注意最好不要有空格和回车等。 2. crt的最常用最基本的二级属性和方法上面都已经介绍完了,总的一个应用原则是属性是静态的,在使用时不需要加(),而方法是动态的(实际上就是函数),因此在调用时需要用(),有些方法是有参数,有些是没有的,在使用时也要注意。 3. 希望通过本篇对二级属性和方法做一个全面的讲解,可以更清楚的知道crt函数中都有哪些具体的函数,哪些可能是重点,哪些可能最常用,以及如何使用这些函数,都可以根据上面的解释和脚本实现中获取相关信息。 4.但凡有子属性或子方法的二级属性和方法,都可以通过后面教程中的写法直接引入,不需要每次都赋值给一个对象使用。 5.希望各位看官可以从中学到些东西,本篇抛砖引玉就到此结束了。下一篇将会就二级属性'Dialog'做详细说明,敬请期待...
SecureCrt脚本(一)顶级对象之Crt的更多相关文章
- SecureCrt脚本(二)二级对象之Dialog
Crt自动化 测试 SecureCrt脚本 JS脚本 1.引言 2.Dialog属性和方法 2.1.属性 2.2.方法 2.2.1.FileOpenDialog 2.2.2.MessageBox ...
- SecureCrt脚本(三)二级对象之Screen详解
Crt自动化 测试 SecureCrt脚本 JS脚本 1.引言 2.Screen属性和方法 2.1.属性 2.1.1.CurrentColumn 2.1.2.CurrentRow 2.1.3.Co ...
- jQuery编程基础精华01(jQuery简介,顶级对象$,jQuery对象、Dom对象,链式编程,选择器)
jQuery简介 什么是jQuery? jQuery就是一个JavaScript函数库,没什么特别的.(开源)联想SQLHelper类 jQuery能做什么?jQuery是做什么的? jQuery本身 ...
- PowerDesigner生成的ORACLE 建表脚本中去掉对象的双引号,设置大、小写
原文:PowerDesigner生成的ORACLE 建表脚本中去掉对象的双引号,设置大.小写 若要将 CDM 中将 Entity的标识符都设为指定的大小写,则可以这么设定: 打开cdm的情况下,进入T ...
- JS顶级对象window
<script type="text/javascript"> var num = 100; alert(num); wind ...
- SQLServer 事务复制中使用脚本添加某个对象的发布
原文:SQLServer 事务复制中使用脚本添加某个对象的发布 -- use [发布库] --添加表:创建项目并将其添加到发布中 exec sp_addarticle @publication = N ...
- JS---BOM基本知识 (顶级对象,系统对话框,加载事件,location对象, history对象, navigator对象)
BOM JavaScript分三个部分: 1. ECMAScript标准---基本语法 2. DOM--->Document Object Model 文档对象模型,操作页面元素的 3. BOM ...
- 编写Python脚本把sqlAlchemy对象转换成dict的教程
编写Python脚本把sqlAlchemy对象转换成dict的教程 在用sqlAlchemy写web应用的时候,经常会用json进行通信,跟json最接近的对象就是dict,有时候操作dict也会比操 ...
- [jQuery]顶级对象$(二)
$ 是 jQuery 的缩写 <script> # 方法1. $ 是jQuery的别称 弹出提示 $(function () { alert(11) ); # 方法2 jQuery(fun ...
随机推荐
- python 最佳入门实践
勿在浮沙筑高台,无论什么技术,掌握核心精神和api,是很重要的. 但是入门过程也可能不是一帆风顺的,这里有八个入门任务,看看你完成了没有: http://code.tutsplus.com/artic ...
- MAC的OS X10.10更新以后进入用户界面就死机
我用的是搜狗输入法,所以把搜狗卸载就好了.(注意是卸载,不是单纯的从输入源里移除) 下载一个搜狗输入法的DMG,打开后选择卸载搜狗输入法. 转自: http://zhidao.baidu.com/qu ...
- hadoop(一):深度剖析hdfs原理
在配置hbase集群将 hdfs 挂接到其它镜像盘时,有不少困惑的地方,结合以前的资料再次学习; 大数据底层技术的三大基石起源于Google在2006年之前的三篇论文GFS.Map-Reduce. ...
- POJ 3083
---恢复内容开始--- http://poj.org/problem?id=3083 题目大意就是给你要你从S走到E,且只有.代表的地方才是可以走的,有三种方式的走法. 一.是向左优先转,从S到E的 ...
- static_cast dynamic_cast const_cast reinterpret_cast总结对比
[本文链接] http://www.cnblogs.com/hellogiser/p/static_cast-dynamic_cast-const_cast-reinterpret_cast.html ...
- centos下编译安装mysql5.5/5.6
2013年11月16日 19:39:13 centos 6 mysql 5.5.28 我只说些我出错的地方: cmake后删除的方法是 xargs rm < install_manifest.t ...
- PHP--TP框架----操作数据库
//操作数据库 //$attr = $m->select(); //查询所有数据 //$attr = $m->s ...
- duapp获取mysql用户名密码等等……
duapp呵呵,又是云!比起新浪,这个免费.下面是:(你懂的) <?php/*数据库名称写自己创建的*/$dbname = 'rjKagJvksJdyUKfyPfjY'; /*从环境变量里取出数 ...
- etc目录名字的意思---挖Linux中的古老缩略语
Unix已经有35年历史了.许多人认为它开始于中世纪,这个中世纪是相对于计算机技术的产生和发展来说的.在过去的时间里,Unix和它的子分支Linux收集有许多的历史和一些完全古老的语言.在这篇技巧文章 ...
- Sql server之路 (四)添加本地数据库MDF文件
安装环境 VS2008 Vs2008 Sp1 安装系统 Win8 1.创建窗体 右键添加新项 上一步 上一步 点击确定 双击Database1.mdf文件 在列名出填写字段名 保存 Ctrl+S 点 ...