我正在使用TestStack.White进行自动化UI测试。我遇到的一个问题是,在点击一个显示新屏幕的按钮后,元素树没有更新。
White使用UI Automation Verify(Microsoft工具),因此如果您无法使用该工具找到元素,White也无法找到它。
如果我打开应用程序,单击按钮以呈现视图,然后打开UI自动化验证,然后该新工具中的所有字段都会显示在该工具中。但是,如果我在单击按钮之前打开了UI自动化验证,则新视图不会显示在该工具中。因此,似乎我需要以某种方式简单地刷新元素树。
我有什么方法可以在C#中执行此操作,以便我的White测试能够看到这些新的渲染元素吗?
答案 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);