I am currently experiencing very slow performance when trying to select an item from a grid which has more than 300 items. It seems that the Table class retrieves all of the rows before trying to find the requested row e.g.
public virtual TableRow Row(string column, string value)
return Rows.Get(column, value);
and the rows are retrieved via the TableRowFactory class in the following manner:
private List<AutomationElement> GetRowElements()
AutomationElementCollection descendants = automationElementFinder.Descendants(AutomationSearchCondition.ByControlType(ControlType.Custom));
var automationElements = new BricksCollection<AutomationElement>(descendants);
The search for a specific row can take as long as 20 minutes. Position based search via xml files seems to help when there is a small number of elements, however as soon as the number is increased the search starts being very slow.
Has anyone come accross this problem, and found a solution? Is there a way to modify this search to "FindFirst" instead of "FindAll"? There was a suggestion by Kannan (
http://white.codeplex.com/Thread/View.aspx?ThreadId=49820 ) on this board to modify the GetRowElements method, however that solution doesn't seem to improve performance.
any info would be helpful