如何使用FlaUI断言网格值?指定AutomationID后的函数调用咨询
断言网格值的函数选择方案
你通过代码FindFirstDescendant(conditionFactory.ByAutomationId("2006"))定位到了一个网格结构的窗格,其中所有单元格值都被标识为document,此前尝试的AsDataGridView().AsGridCell()无法满足需求,以下是适配的函数及用法:
核心思路
由于单元格的自动化类型为Document,需放弃针对标准网格单元格的AsGridCell(),转而使用AsDocument()来获取单元格元素,结合网格定位逻辑获取目标值后完成断言。
方案一:通过网格控件定位(推荐)
如果你的自动化框架支持AsGrid()转换(如WinAppDriver),可以按行/列索引精准定位单元格:
// 定位网格容器并转为Grid控件 var grid = FindFirstDescendant(conditionFactory.ByAutomationId("2006")).AsGrid(); // 获取指定行、列的单元格(示例为第1行第1列,索引从0开始) var targetCell = grid.GetCell(0, 0).AsDocument(); // 断言单元格文本值 Assert.AreEqual("你的预期值", targetCell.GetText());
方案二:遍历Document类型元素
若网格无法转为标准Grid控件,可直接筛选所有Document类型的子元素,再定位目标值:
var gridContainer = FindFirstDescendant(conditionFactory.ByAutomationId("2006")); // 获取网格下所有Document类型的元素 var documentCells = gridContainer.FindAllDescendants(conditionFactory.ByControlType(ControlType.Document)); // 断言目标单元格的值(示例为第一个元素) Assert.AreEqual("你的预期值", documentCells.First().GetText());
说明
你之前使用的AsDataGridView()仅适用于标准Windows Forms DataGridView控件,而当前网格的单元格被识别为Document类型,因此需要适配对应的AsDocument()方法来正确获取元素的文本内容。
内容的提问来源于stack exchange,提问作者PLazy
相关产品推荐
相关产品推荐

