Мне нужно проверить функцию фильтра на столе.
Этот фильтр находится только в первой ячейке каждой строки, и я пытаюсь понять, как получить все эти значения...
Я пробовал что-то вроде
public bool CheckSearchResults(HtmlControl GridTable, string FilterTxt)
{
List<string> Elements = new List<string>();
foreach (HtmlCell cell in GridTable.GetChildren())
{
Elements.Add(cell.FilterProperties["title"]);
}
List<string> Results = Elements.FindAll(l => l.Contains(FilterTxt));
return Results.Count == Elements.Count;
}
но я застреваю в цикле foreach ... может быть, есть простой способ с linq, но я не так много знаю об этом
редактировать: все ячейки, которые мне нужны, имеют один и тот же пользовательский тег html.
с этим кодом я должен получить их все, но я не знаю, как повторить
HtmlDocument Document = this.UIPageWindow.UIPageDocument;
HtmlControl GridTable = this.UIPageWindow.UIPageDocument.UIPageGridTable;
HtmlCell Cells = new HtmlCell(GridTable);
Cells.FilterProperties["custom_control"] = "firstCellOfRow";
также потому, что нет функции GetEnumerator или моделей запросов для объектов HtmlCell, которые являются частью библиотеки Microsoft.VisualStudio.TestTools.UITesting.HtmlControl -.-
edit2: я нашел эта статья и я попробовал это
public bool CheckSearchResults(string FilterTxt)
{
HtmlDocument Document = this.UIPageWindow.UIPageDocument;
HtmlControl GridTable = this.UIPageWindow.UIPageDocument.UIPageGridTable;
HtmlRow rows = new HtmlRow(GridTable);
rows.SearchProperties[HtmlRow.PropertyNames.Class] = "ui-widget-content jqgrow ui-row-ltr";
HtmlControl cells = new HtmlControl(rows);
cells.SearchProperties["custom_control"] = "firstCellOfRow";
UITestControlCollection collection = cells.FindMatchingControls();
List<string> Elements = new List<string>();
foreach (UITestControl elem in collection)
{
HtmlCell cell = (HtmlCell)elem;
Elements.Add(cell.GetProperty("Title").ToString());
}
List<string> Results = Elements.FindAll(l => l.Contains(FilterTxt));
return Results.Count == Elements.Count;
}
но я получаю пустую коллекцию...