WaitQtObject Method

Applies to TestComplete 14.70, last modified on April 22, 2021

Description

Use this method to pause the script execution until the specified window or control of a Qt application becomes available. WaitQtObject returns a program object that provides a scripting interface to the specified window or control. The resulting object contains methods and properties defined in application code as well as methods, properties and actions provided by TestComplete.

Declaration

TestObj.WaitQtObject(ObjNameTimeout)

TestObj A variable, parameter or expression that specifies a reference to one of the objects listed in the Applies To section
ObjName [in]    Required    String    
Timeout [in]    Required    Integer    
Result Object

TestObj.WaitQtObject(ClassNameTextTimeout)

TestObj A variable, parameter or expression that specifies a reference to one of the objects listed in the Applies To section
ClassName [in]    Required    String    
Text [in]    Required    String    
Timeout [in]    Required    Integer    
Result Object

TestObj.WaitQtObject(ClassNameTextWndIndexTimeout)

TestObj A variable, parameter or expression that specifies a reference to one of the objects listed in the Applies To section
ClassName [in]    Required    String    
Text [in]    Required    String    
WndIndex [in]    Required    Integer    
Timeout [in]    Required    Integer    
Result Object

Applies To

The method is applied to the following objects:

View Mode

To view this method in the Object Browser panel and in other panels and dialogs, activate the Advanced view mode.

Parameters

The method has the following parameters:

ObjName

The name of the desired object as it is specified in the tested application’s source code (the string that is returned by object’s native objectName property).

ClassName

The window’s class name as it is specified by the QtClassName property.

Text

The window’s caption as it is specified by the QtText property. You can use wildcards (* and ?) in this parameter.

WndIndex

The window’s index as it is specified by the QtIndex property.

Timeout

The number of milliseconds to wait until the specified object becomes available. If Timeout is 0, the method returns immediately. If Timeout is -1, the wait time is infinite.

Note that Timeout value is not strict and if the tested application is busy, TestComplete could wait for the object for a longer period of time than it is specified by the parameter. The following can cause this:

A call to any WaitXXXObject method causes the object tree to refresh. To update object data, TestComplete may call some of object’s native methods that are accessible only from the application’s thread. When the thread is busy, TestComplete tries to call those methods during some pre-defined time (one second) thus delaying the refresh. There could be several attempts to get the object’s data which could result in a noticeable difference from the Timeout value.

Result Value

The WaitQtObject method returns an object that provides a scripting interface to an object located in the tested Qt application. If TestComplete cannot access the specified object (for example, this object does not exist), the method will return an empty stub object and post an error message to the test log. You can determine whether the returned object is valid using its Exists property. This property returns False if the returned object is empty, that is the call to WaitQtObject was not successful.

Remarks

The returned object contains both methods and properties defined in the application code as well as methods, properties and actions provided by TestComplete. The resulting object may contain two or more methods and properties having the same name. To avoid naming conflicts, use the NativeQtObject namespace.

The method is available only if the Qt Application Support plugin is installed and enabled. Otherwise, the method is absent in the method list of the TestObj object. If the plugin is installed and enabled, you cannot use the Window method to address windows of your Qt applications, you should use WaitQtObject instead.
You can determine whether the plugin is installed using the IsPluginInstalled Method method.

See Also

Addressing Objects in Qt Applications
Object Browser Naming Notation
Using Namespaces
About Open Applications
QtClassName Property (Qt Application Objects)
WaitWindow Method
QtObject Method
Window Method

Highlight search results