刷新白色自动化元素树
Refresh White Automation Element Tree
我正在使用 TestStack.White 进行自动化 UI 测试。我 运行 遇到的一个问题是,在我单击调出新屏幕的按钮后,元素树没有更新。
White 使用 UI Automation Verify(Microsoft 工具)工作,因此如果您使用该工具找不到元素,White 也将无法找到它。
如果我打开应用程序,单击按钮渲染视图,然后打开 UI Automation Verify,然后该新视图中的所有字段都会显示在该工具中。但是,如果我在单击按钮之前打开了 UI Automation Verify,则新视图不会显示在该工具中。因此,看来我需要以某种方式简单地刷新元素树。
有没有什么方法可以在 C# 中执行此操作,以便我的 White 测试能够看到那些新呈现的元素?
您是否尝试过 InitializeOption.WithCache 选项?
Window modalWindow = mainWindow.ModalWindow(SearchCriteria.ByText("Modal Window"), InitializeOption.WithCache);
modalWindow.ReloadIfCached();
//or
modalWindow.ReInitialize(InitializeOption.WithCache);
我遇到了同样的问题(当从创建控件切换到简单地更改现有控件的可见性时)。
在该代码起作用之前:
checkButton.Toggle();
之后就没有了。解决方案是使用
Mouse.Instance.Click(checkButton.ClickablePoint);
相反。
当您直接使用鼠标对象时,TestStack/White 确实会以某种方式更好地响应和刷新 UI。
我正在使用 TestStack.White 进行自动化 UI 测试。我 运行 遇到的一个问题是,在我单击调出新屏幕的按钮后,元素树没有更新。
White 使用 UI Automation Verify(Microsoft 工具)工作,因此如果您使用该工具找不到元素,White 也将无法找到它。
如果我打开应用程序,单击按钮渲染视图,然后打开 UI Automation Verify,然后该新视图中的所有字段都会显示在该工具中。但是,如果我在单击按钮之前打开了 UI Automation Verify,则新视图不会显示在该工具中。因此,看来我需要以某种方式简单地刷新元素树。
有没有什么方法可以在 C# 中执行此操作,以便我的 White 测试能够看到那些新呈现的元素?
您是否尝试过 InitializeOption.WithCache 选项?
Window modalWindow = mainWindow.ModalWindow(SearchCriteria.ByText("Modal Window"), InitializeOption.WithCache);
modalWindow.ReloadIfCached();
//or
modalWindow.ReInitialize(InitializeOption.WithCache);
我遇到了同样的问题(当从创建控件切换到简单地更改现有控件的可见性时)。 在该代码起作用之前:
checkButton.Toggle();
之后就没有了。解决方案是使用
Mouse.Instance.Click(checkButton.ClickablePoint);
相反。
当您直接使用鼠标对象时,TestStack/White 确实会以某种方式更好地响应和刷新 UI。