【问题标题】:how do we check whether a particular modal window opens or not using teststack.white Automation framework?我们如何使用 teststack.white 自动化框架检查特定模式窗口是否打开?
【发布时间】:2017-02-22 17:16:22
【问题描述】:

我遇到了与模式窗口有关的问题。

在我正在自动化的应用程序中,如果用户有一些数据,则会打开一个模式窗口,但如果没有,则不会打开。我们如何放置“if 语句”,例如,如果模态窗口存在则做一些工作,否则跳过。因为我在这个声明中有一个错误

Window childWindow = mainWindow.ModalWindow("child");

它抛出异常,因为它无法搜索名称为“child”的窗口。我知道它不存在。如果它不存在,它应该跳过它。

【问题讨论】:

  • 你能不检查模态窗口使用的属性或值,然后如果所有条件都满足..然后打开或者你可以打开模态窗口并保存或关闭检查值,如果没有的话跳过其他过程
  • 我认为您没有完全理解我的问题。让我改写一下:
  • 如果我在“_currentWindow”中有基本窗口的实例,如何检查是否存在名为“ModalDialog”的模式窗口?如果我尝试:_currentWindow.ModalWindow(searchCriteria);如果模态窗口不存在,这将引发空引用异常。在执行上述语句之前,我们是否有办法检查具有给定搜索条件的模态窗口是否存在?

标签: c# ui-automation white-framework


【解决方案1】:

在执行ModalWindow方法之前,你可以试试看是否有模态窗口

Window childWindow = null;
if(mainWindow.ModalWindows().Any())
{
    childWindow = mainWindow.ModalWindow("child");
}

否则你可以尝试定义标准,或者在某个超时时间

...
var timer = new StopWatch();
timer.Start();
Window childWindow = null;
do 
{
    childWindow = mainWindow.ModalWindow("child");
} while (childWindow != null || timer.ElapsedMilliseconds < timeOutInMs);
...

希望对你有帮助。

瑞克

【讨论】:

    【解决方案2】:

    我的工作代码(AutomationUI):

    using System.Windows.Automation;
    
    Automation.AddAutomationEventHandler(
                WindowPattern.WindowOpenedEvent,
                mainWindow.AutomationElement,
                TreeScope.Descendants,
                (sender, e) =>
                {
                    var element = sender as AutomationElement;
                    if (!(element.Current.LocalizedControlType == "Dialog" && element.Current.Name == "modalWindowTitle"))
                        return;
    
                    Automation.RemoveAllEventHandlers();
                    // Here run your code. The modal window was opened
                });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-26
      • 2021-10-03
      • 2012-08-18
      • 1970-01-01
      • 1970-01-01
      • 2013-06-26
      • 1970-01-01
      相关资源
      最近更新 更多