2013-02-20 60 views
1

具體我試圖做的如何通過COM訪問TestComplete中的aqObject方法?

aqObject.IsSupported(objText, "SomeProperty") 

通過TestComplete COM接口的等價物。

你是如何做到這一點的?

注:

我連接到TestComplete通過WIN32OLE通過連接到"TestComplete.TestCompleteApplication.8"

可能值得指出的是,我試圖要求集成通過名稱獲取aqObject並返回NULL。

SYS = tc.integration.GetObjectByName( 「SYS」) sys.Exists =>真 sys.Name => 「SYS」

aqObject = tc.integration.GetObjectByName( 「aqObject」) =>零

+0

您正在使用哪種語言? – Helen 2013-02-21 07:52:42

+0

其實我試圖在使用Win32Ole和VBScript的紅寶石。 – 2013-02-22 01:58:06

回答

2

目前在TestComplete中是否有運行測試? This article表示這是GetObjectByName的先決條件:

只有當TestComplete正在運行測試時,才能獲取該對象。如果在TestComplete中沒有運行測試,GetObjectByName將返回一個空的Variant值。

+0

這是一個恥辱。我試圖避免開始測試。我有一個工作,我正在訪問我想檢查的屬性並捕獲異常。這不是完美的,但它的工作原理。 :( – 2013-02-22 02:00:02

+2

)您可能想要考慮一種連接應用程序正在使用的方法 - 它們可以將TestComplete切換到測試執行狀態而無需執行任何測試。在此狀態下,GetObjectByName應該可以工作 - 請查看以下幫助主題:http://support.smartbear .COM/viewarticle/28579 /#例程 – Alex 2013-03-01 10:34:34

1

如果使用TestComplete的Connected Applications功能,可以很容易地與它的成員一起經由Connect類訪問aqObject對象。

+0

請擴大此答案以包含一些示例代碼。 – 2013-02-20 21:23:32

+0

我通過連接到「TestComplete.TestCompleteApplication.8」通過WIN32OLE連接到TestComplete。連接的應用程序似乎只是使用包裝COM接口的DLL。看看script.h,'TestComplete :: aqObject'僅僅是'tc.integration.GetObjectByName(「aqObject」)'的一個包裝,它不起作用。 – 2013-02-20 22:31:25