为什么Coded UI无法在WPF数据网格中提取列标题文本,为列标题指定自动化ID?

时间:2016-04-28 06:38:58

标签: c# wpf wpfdatagrid ui-automation coded-ui-tests

我正在尝试使用Coded UI验证WPF数据网格中列标题的文本。我正在使用完全编码的方法,而不是使用记录和回放方法,因为我觉得它给了我更多的灵活性。但是我很难获得Coded UI来找到控件。我正在尝试验证以下控件中的Display Text属性:

enter image description here

由于这没有自动化ID,我搜索了(父)列标题对象:

enter image description here

下面的代码片段是我用来提取列标题文本的代码:

WpfTable table = new WpfTable("mainWindow");
table.SearchProperties.Add(WpfTable.PropertyNames.AutomationId, "gridId");
table.WaitForControlReady(15000);
table.SetFocus();

WpfCell cell = new WpfCell(table);
cell.SearchProperties.Add(WpfControl.PropertyNames.AutomationId, "columnHeaderId");
cell.WaitForControlExist(5000);

string clientIdHeaderDisplayText = (new WpfText(clientIdHeader)).DisplayText;

我面临的问题是我一直收到这个错误:

  

TestMethod抛出异常:   Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException:   播放无法通过给定搜索找到控件   属性。其他细节:TechnologyName:'UIA'FrameworkId:   'Wpf'ControlType:'Text'
  ---> System.Runtime.InteropServices.COMException:错误HRESULT E_FAIL有   已通过调用COM组件返回。

只要执行上述代码段中的最后一行,就会抛出异常。有人可以帮我解决这个问题吗?

0 个答案:

没有答案