Secondary properties
While most TA properties get their values directly from single native properties of their associated controls, there are some TA properties whose values are calculated, often from two or more native properties, or from other controls. We’ll examine a few examples.
Derived properties
Not all TA properties obtain their values directly from a single native property. In some cases, there is a many-to-one mapping from native to TA properties. For example, the state TA property of a WPF radio button takes its value from up to five different native properties: IsEnabled, IsVisible, Focusable, IsFocused, and IsChecked. (Note also that the mapping doesn’t merely copy the True/False values of each property. Instead, it derives the individual values from the combination of both the nature and value of each native property. Hence, for example, with native property IsEnabled = True, the term enabled is included in the value of state.)
Some secondary properties are more complex in terms of how their values are arrived at. In some cases their values are calculated, and in some cases those values are dependent on their host controls’ physical positions, or even on the existence or values of neighboring controls.
Some of the more important secondary properties are examined below.
Using global pos to identify UI elements
global pos is a TA property that is generated by TestArchitect for each available control of a given window, and is essentially independent of any of that control’s native properties. Each such control is assigned a global pos value that is unique within that window.
anchor pos property
anchor pos is a secondary property that, like global pos, is used to identify a control independent of any inherent property-value pairs. The use of anchor pos is an often more reliable means of identifying a control than global pos, and is recommended over global pos.
column headers property
column headers is a secondary TA property that applies to certain grid-style controls with column labels. It simply maintains the text content of all the headers in one long string.
index path property
index path is a secondary TA property that uses one or two index values to specify the position of a cell in either a table view or collection view structure in iOS.
label property
label is a TA property that TestArchitect assigns to a number of different types of controls. A control’s label value is usually unique within a window, hence it often serves as a useful identifier, one that you can use to reliably map the control to a TA name.
node path property
node path is a secondary TA property that specifies the position of a cell in a treeview control in the WPF and UIA platforms.
text property
text, in some cases, is a secondary property, with its value derived from other controls.
XPath property
TestArchitect uses a special TA property, called XPath and derived from the XPath language, to uniquely locate UI controls within tested web applications.