刷新白色自动化元素树

时间:2015-09-17 19:33:22

标签: c# ui-automation microsoft-ui-automation white

我正在使用TestStack.White进行自动化UI测试。我遇到的一个问题是,在点击一个显示新屏幕的按钮后,元素树没有更新。

White使用UI Automation Verify(Microsoft工具),因此如果您无法使用该工具找到元素,White也无法找到它。

如果我打开应用程序,单击按钮以呈现视图,然后打开UI自动化验证,然后该新工具中的所有字段都会显示在该工具中。但是,如果我在单击按钮之前打开了UI自动化验证,则新视图不会显示在该工具中。因此,似乎我需要以某种方式简单地刷新元素树。

我有什么方法可以在C#中执行此操作,以便我的White测试能够看到这些新的渲染元素吗?

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题(从创建控件切换到简单地更改现有控件的可见性)。 在该代码工作之前:

checkButton.Toggle();

之后它没有。解决方案是使用

Mouse.Instance.Click(checkButton.ClickablePoint);

代替。

当您直接使用Mouse对象时,TestStack / White会以某种方式响应并更新UI。

答案 1 :(得分:0)

您是否尝试过InitializeOption.WithCache选项?

Window modalWindow = mainWindow.ModalWindow(SearchCriteria.ByText("Modal Window"), InitializeOption.WithCache);
modalWindow.ReloadIfCached();
//or
modalWindow.ReInitialize(InitializeOption.WithCache);