Description
The Objects object stores collections of properties and fields of applications' objects and allows you to: 
- Save application object properties to the Stores | Objects collection.
- Compare object properties (especially those of the current object against those of a stored one).
- Restore to an object the values of saved properties, all at once or selectively.
The Objects object contains properties that correspond to the objects added to the Stores | Objects collection. The property names coincide with the names of these objects. Each property returns a StoredObject object that corresponds to the appropriate object. For instance, the following code provides access to the CheckBox1 element:
JavaScript, JScript
var StoredObj1 = Objects.CheckBox1;
Python
StoredObj1 = Objects.CheckBox1VBScript
Set StoredObj1 = Objects.CheckBox1
DelphiScript
var
  StoredObj1 : OleVariant;
begin
  StoredObj1 := Objects.CheckBox1;
end;
C++Script, C#Script
var StoredObj1 = Objects["CheckBox1"];
Objects lets you trace changes during a test. It also lets you compare an object state in the current test to the object state stored in a previous test and update values of stored properties with actual ones. This makes Objects a very useful tool for regression testing.
| Note: | The Objectsobject can only work with objects’ properties whose values are OLE-compatible. If you need to save, compare or restore an object’s non OLE-compatible property, you need to write the corresponding code manually. | 
Requirements
The Objects object is available only if your project contains the Stores | Objects collection.
Members
Example
The following code demonstrates how you can save properties of the desired object to an item of the Objects collection and compare the values of the stored properties with the actual values of the properties.
JavaScript, JScript
function Test()
{
  var w, PropertyNames, CollectionName;
  w = Sys.Desktop.ActiveWindow();
  // Prepares the property list
  PropertyNames = "Top Left Height Width";
  // Sets the name of the property collection
  CollectionName = "ActiveWindowProps";
  // Saves the values of the properties specified in PropertyNames.
  // Note that the Save method also has the fourth parameter
  // that lets you not to save certain properties.
  Objects.Save(w, CollectionName, PropertyNames);
  ...
  // Compares property values
  if (! Objects.Compare(w, CollectionName))
    Log.Message("Properties have been changed.");
}
Python
def Test():
   w = Sys.Desktop.ActiveWindow()
   # Prepares the property list
   PropertyNames = "Top Left Height Width"
   # Sets the name of the property collection
   CollectionName = "ActiveWindowProps"
   # Saves the values of the properties specified in PropertyNames.
   #Note that the Save method also has the fourth parameter
   # that lets you not to save certain properties.
   Objects.Save(w, CollectionName, PropertyNames)
   # ...
   # Compares property values
   if not Objects.Compare(w, CollectionName):
     Log.Message("Properties have been changed.")VBScript
Sub Test
  Set w = Sys.Desktop.ActiveWindow
  ' Prepares the property list
  PropertyNames = "Top Left Height Width"
  ' Sets the name of a property collection
  CollectionName = "ActiveWindowProps"
  ' Saves the values of the properties specified in PropertyNames.
  ' Note that the Save method also has the fourth parameter
  ' that lets you not to save certain properties.
  Objects.Save w, CollectionName, PropertyNames
  ...
  ' Compares property values
  If Not Objects.Compare(w, CollectionName) Then
    Log.Message "Properties have been changed."
  End If
End Sub
DelphiScript
var
  w, PropertyNames, CollectionName : OleVariant;
begin
  w := Sys.Desktop.ActiveWindow();
  // Prepares the property list
  PropertyNames := 'Top Left Height Width';
  // Sets the name of the property collection
CollectionName := 'ActiveWindowProps';
  
  // Saves the values of the properties specified in PropertyNames.
  // Note that the Save method also has the fourth parameter
  // that lets you not to save certain properties.
Objects.Save(w, CollectionName, PropertyNames);
  ...
  // Compares property values
  if not Objects.Compare(w, CollectionName) then
    Log.Message('Properties have been changed.');
end;
C++Script, C#Script
function Test()
{
  var w, PropertyNames, CollectionName;
  
  w = Sys["Desktop"]["ActiveWindow"]();
  // Prepares the property list
  PropertyNames = "Top Left Height Width";
  // Sets the name of the property collection
  CollectionName = "ActiveWindowProps";
  // Saves the values of the properties specified in PropertyNames.
  // Note that the Save method also has the fourth parameter
  // that lets you not to save certain properties.
  Objects["Save"](w, CollectionName, PropertyNames);
  ...
  // Compares property values
  if (! Objects["Compare"](w, CollectionName) )
    Log["Message"]("Properties have been changed.");
}

 Properties
Properties