前往: 導覽, 搜尋

TestComplete work with "Scripting.Dictionary" 這東西就像 python 的 dictionary類似的概念

TcDic003.jpg

Python 中 Dictionary 用久了就覺得那東西真是好用,發明 Dictionary 的人真是偉大。
TC 中有類似的東西,他叫做 "Scripting.Dictionary" ,使用的方式如下:

function dicExample() 
{ 
    //新增 COM 元件, 那元件名稱叫做 Scripting.Dictionary
    dicTmp = new ActiveXObject("Scripting.Dictionary"); 
 
    //增加Item, 把 key 和 value 整理出來,一個一個的加入
    dicTmp.add("key", "value1"); 
    dicTmp.add("key2", "value2");
 
    //顯示這個 dicitonary 有多少的 item
    var cnt = dicTmp.Count;
    Log.Message(cnt);
 
    //用 Key 拿Value
    var Val2 = dicTmp.Item("key");//Val2 將會等於 "value2"
 
    //一口氣拿所有的 Key 使用 Keys method
    var oKeys = dicTmp.Keys();//將會 return array
    //要使用前經將吐回來的 array 轉成 javascript 相容的 array
    ToJavaScriptArry = new VBArray(oKeys);
    result = ToJavaScriptArry.toArray();
 
    for (var index = 0; index < dicTmp.Count; index++)
    {
        Log.Message(result[index]);
    }
 
}
//客官別走開哦!! 下面還有更厲害的


神奇吧!!!位蝦米 使用 Keys()/Items() 要使用 VBArray 在轉一次??
根據本山人的"猜測",在 TC 中使用 JavaScript 他底層是使用 VBScript 做的,傳出來的結果都是 VBScript 的東西
所以拿JavaScript 操作時要再將 VBScript 的陣列轉成 JavaScript 的type。

參考網頁:
http://smartbear.com/forums/forum/post/?mode=singleThread&thread=e3d10af8-ae70-482b-b867-6193efdeff23


時光飛逝,最近在回來玩 TestComplete 的時候發現,
其實使用 Directory 根本不用那麼複雜....馬個勒B..把我的青春還給我...相逢恨晚 >"<

function Alarm2()
{
  //語法超像python 的說 讚讚!!
  var list = {"color" : "red", "width": 100};
  list["a"] = "Apphabet";
  list["b"] = "BBCAll";
  for (var word in list)
    Log.Message(list[word]);
 
 
 
  var lstCASE = {"CASE1" : "Path1", "CASE2" : "Path2", "CASE3" : "Path3"};
  var gLst = {"01.htm" : lstCASE};//別忘記 Directory value 可以儲存物件哦!!
  var myCASE = gLst["01.htm"]
  for (var key in myCASE)
    Log.Message(myCASE[key])
}