Steer controls with Tricentis Neo Engine

You can steer the controls that you have scanned with the Neo Engine in the same way as TBox controls.

This chapter provides additional information on:

You can use the Neo Engine to steer controls in mobile applications if the Mobile Engine 3.0 doesn't support or recognize them. For detailed information, refer to this Knowledge Base article.

Additional parameters for table steering

If you want to automate tables, you can modify additional parameters that specify how the Neo Engine detects table content. For information on how to edit these parameters in XScan, see chapter "Change the parameters for table detection and steering".

Steer Method

The Method parameter defines the way in which the Neo Engine distinguishes table cells from pixels on the screen. You can use the following values for this parameter:

  • Gridlines - The Neo Engine searches for long vertical and horizontal lines within the table bounds. This method might recognize the bottom of the text in a row as a possible line, which results in detecting an extra empty row. In this case, you can use the MergeEmpty parameter to get rid of the extra empty row.

  • Words - The Neo Engine searches for pixels that are different from their surrounding pixels but not gridlines. This method uses the vertical and horizontal gaps between words as cell boundaries.

  • CountrolBounds - The Neo Engine searches for the bounds of each control and a text block. This method uses the vertical and horizontal gaps between these controls as cell boundaries.

  • Auto - The Neo Engine tries the Gridlines method first. If it fails to find a good set of cells, it falls back to the Words method.

Steer ColumnThreshold and RowThreshold

The parameters ColumnThreshold and RowThreshold control how sensitive the Neo Engine is when it selects a row or column. The values for these parameters range from 0 to 100. They specify the percentage threshold that the Neo Engine must detect to steer the row or column. Lower values mean that more rows or columns are used while higher values mean that less rows or columns are used.

The default value Auto selects the best value based on the Method parameter:

  • For Gridlines method, it's 30.

  • For Words method, it's 15.

  • For ControlBounds method, it's 1.

Steer MergeEmpty

The Neo Engine might detect extra empty rows or columns. This happens frequently, if you use the Words or ControlBounds method.

The MergeEmpty parameter specifies when these empty rows and columns are merged into the other content of the table:

  • Set this parameter to True to turn merging on or to False to turn it off.

  • Set this parameter to Auto if you want to turn merging off when you use the Gridlines method. For all other methods, it turns merging on.

Steer HeaderColumn and HeaderRow

These two parameters work in the same way as standard TBox tables. You can select which row and/or column number is used for headers.

To set these values, click in the cells in the Content Preview.

Steer HeadersContain

Sometimes the exact header row number varies depending on the detection location. In this case, you can't rely on the HeaderRow parameter. Instead, set the HeadersContain parameter to a text value from the header row of your table. The Neo Engine searches the table for a row that contains this text value and uses it as the header row.

Steer DecisiveColumns

This parameter works in the same way as standard TBox tables. It specifies the columns for the $lastContentRow and $firstEmptyRow selectors. The default value is * which means that all columns are used.

Steer IgnoreInvisibleTableContent

This parameter has no effect for Neo Engine tables.

Limitations in steering tables with the Neo Engine

Currently, the Neo Engine doesn't support the following options and properties for steering tables:

  • Table properties: Exists, RowCount, and ColumnCount.

  • Table scrolling within the table. If the Neo Engine doesn't find a specified row or cell, it scrolls through the whole page, but only vertically. Horizontal scrolling is not supported.

  • Defining embedded controls in cells via the Create Embedded <Control-Type> control option in context menu. If you want to use an embedded control, scan it separately in XScan. In the Modules section, drag this control into the Cell ModuleAttribute.

  • Column-first steering doesn't support row labels. This means that you can't use the row label as the cell name if you use the secondary steering under a table control. For example, if you select a column and then a cell, only numeric indexes such as $1, $2, $last are supported.

  • The Content Preview pane doesn't display the cells that are merged. The gridlines in merged cells are visible.

To overcome these limitations, you can insert the NeoScript statements directly between TestSteps in Tricentis Tosca. To do so, use the Run NeoScript Module.