SecureCrt腳本(一)頂級對象之Crt


Crt自動化 測試 SecureCrt腳本 JS腳本

 

1、引言

Crt腳本的實現需要使用Crt定義好的各個對象的屬性和方法來實現,腳本函數系列將逐一介紹Crt腳本中最常使用的對象,對這些對象以層級關系畫出,本篇首先介紹頂級對象。crt的屬性和方法。屬性是一個靜態的對象,方法是具體執行的動作。屬性和方法底下還可以有子屬性和子方法,這個其實就和面向對象的編程方式很像,有些基礎的人應該會很快掌握。

2、關於腳本表頭

解釋

在學習腳本函數前,先說說在腳本中頭兩行(必須寫在頭兩行,且最好不要有空格回車之類的字符)所必須添加的標識,這兩行標識告訴Crt當前執行的腳本需要使用什么解釋器進行解釋。其中language為語言,現支持Jscript、VBScript、Python、Perl,interface為接口,現在都是1.0,以下為示例,修改對應的語言即可

代碼

  • JS
1 # $language = "JScript" 
2 # $interface = "1.0"
  • python
1 # $language = "Python" 
2 # $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
1 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
1 // 檢查Crt版本,如果低於7.3,則退出Crt。 
2 crtVer = crt.Version; 
3 if ( crtVer < 7.3 ) { 
4     crt.Quit(); 
5 }

3.1.6、Window

解釋

返回當前程序的窗口對象,該對象下有子對象,可以實現諸如隱藏當前窗口等的功能。

代碼

  • JS
1 var crtWin = crt.Window;

3.2、方法

3.2.1、GetActiveTab()

解釋

Crt軟件的管理是多Tab的,該方法返回當前活躍狀態的Tab界面,該界面作為一個新的Tab屬性使用,而Tab屬性本身又有許多子屬性和方法,因此該方法也是比較實用的一個函數。

代碼

  • JS
1 var actTab = crt.GetActiveTab();

3.2.2、GetScriptTab()

解釋

獲取當前腳本執行的Tab對象,該對象有一些子對象和方法,通過獲取Tab頁面,可以輕松的實現在多個Tab中同時發送數據的功能。

代碼

  • JS
1 // 獲取當前腳本執行的Tab,並獲取編號(Index從1開始) 
2 var scriptTab = crt.GetScriptTab(); 
3 var tabNum = scriptTab.Index; 
4 // 在當前Tab上發送數據
5 scriptTab.Screen.Send("腳本執行的Tab是:"+tabNum); 

3.2.3、GetTabCount()

解釋

獲取當前總Tab數目,是一個數值類型返回值。

代碼

  • JS
1 // 獲取總Tab數目 
2 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
 1 // 獲取指定編號的Tab對象 
 2 var tabCount = crt.GetTabCount(); 
 3 var gTab = ""; 
 4 // 從Tab1到所有Tab依次發送數據 
 5 for ( var i = 1 ; i <= tabCount; i++ ) { 
 6     gTab = crt.GetTab(i); 
 7     // 暫停5秒再發送數據 
 8     crt.Sleep(5000); 
 9     gTab.Screen.Send("當前Tab為:"+i); 
10 }

3.2.6、Quit()

解釋

退出Crt軟件。(不是退出腳本,是直接退出軟件。)

代碼

JS

 1 // 如果直接使用crt.Quit的話只要有會話是激活的,那么就會有彈窗出來,因此,可以使用for循環,先將所有Tab斷連,再退出。 
 2  
 3 // 斷連所有Tab 
 4 var tabCount = crt.GetTabCount(); 
 5 var gTab = ""; 
 6 for ( var i = 1 ; i <= tabCount; i++ ) { 
 7     gTab = crt.GetTab(i); 
 8     gTab.Session.Disconnect(); 
 9 } 
10 // 此時可以直接退出Crt 
11 crt.Quit()

總結

 1. 在寫腳本時一定要添加前言所述的腳本頭部兩行,且注意最好不要有空格和回車等。

 2. crt的最常用最基本的二級屬性和方法上面都已經介紹完了,總的一個應用原則是屬性是靜態的,在使用時不需要加(),而方法是動態的(實際上就是函數),因此在調用時需要用(),有些方法是有參數,有些是沒有的,在使用時也要注意。
 
 3. 希望通過本篇對二級屬性和方法做一個全面的講解,可以更清楚的知道crt函數中都有哪些具體的函數,哪些可能是重點,哪些可能最常用,以及如何使用這些函數,都可以根據上面的解釋和腳本實現中獲取相關信息。

 4.但凡有子屬性或子方法的二級屬性和方法,都可以通過后面教程中的寫法直接引入,不需要每次都賦值給一個對象使用。
 
 5.希望各位看官可以從中學到些東西,本篇拋磚引玉就到此結束了。下一篇將會就二級屬性'Dialog'做詳細說明,敬請期待...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM