You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 17:42:30