c# - 通过 White 访问 DataGridView 单元格

标签 c# forms datagridview automation white-framework

所以我在用 White 做一些 C# 自动化/UI 测试时遇到了麻烦 与某事。我在应用程序中有一个 DataGridView,我设置了背景 单元格颜色因应用程序状态而异。我想在使用白色的测试期间检查这些颜色,但在这样做时遇到了问题。

这就是我正在努力工作的内容。我可以获得 GridView ,但只能作为表格。然后,我后来遇到了问题,因为我最终得到的是普通的 TableCells 而不是 DataGridViewCells。

var Table = MainWindow.Window.Get<Table>("DataGridViewName");
var Row = Table.Rows[0];
var Cell = Row.Cells[0];
//invalid
//var Color = Cell.Style.BackColor;

有没有人遇到过这个问题或者有什么建议?

最佳答案

您确定背景颜色是通过 UI Automation 公开的吗? 从我完成的低级 UI 自动化编码来看,我从未见过这样的属性。我刚刚打开 Inspect(类似于 UISpy)并将其指向 C# WinForms 应用程序中的 DataGridView,但没有公开此类属性。

因此,由于它似乎没有暴露,因此没有办法通过自动化来弄清楚它,除非捕获图像并将其与具有某个阈值的某个基线进行比较(听起来一团糟)。

除非您能以某种方式将信息嵌入到其他一些自动化属性中(这需要更改被测应用程序),否则我看不出有任何方法可以做到这一点。 :(

关于c# - 通过 White 访问 DataGridView 单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12220527/

相关文章:

javascript - 带有提交按钮的表单内的 onClick 函数会导致错误

c# - 内联 C# 代码与 Page_Load 方法

c# - 尝试使用 .netstandard 2 程序集时出现 Web Api 2 运行时错误

c# - Braintree API 在 Sandbox 中的 CreateCard.Create 上抛出 Braintree.Exceptions.AuthorizationException

Python Mechanize 用变量或提取的文本填充表单

javascript - 将所有发布数据发送到 Jquery AJAX

c# - 如何使用 lambda 和非 lambda linq 有条件地排序?

c# - 在自定义 DataGridViewCell 中托管 UserControl

c# - 实用程序类与子类化 .net 控件

c# - 更改 DataGridView 中的列名