Esempio n. 1
0
        public static UIObject GetTopLevelUIObject(UIObject topWindow)
        {
            if (topWindow == null)
            {
                throw new ArgumentNullException(paramName: nameof(topWindow));
            }
            Log.Out(msg: "GetTopLevelUIObject: object");
            UIObject element = null;

            if ((ControlType)topWindow.GetProperty(property: UIProperty.Get(name: "ControlType")) != ControlType.Window)
            {
                throw new InvalidOperationException(message: "topWindow didn't find a window (ControlType==Window) after app activation completed.");
            }
            if (topWindow.ClassName.Equals(value: "Windows.UI.Core.CoreWindow", comparisonType: StringComparison.OrdinalIgnoreCase))
            {
                element = topWindow;
            }
            else
            {
                uint num;
                for (num = 0U; num < 10U && !topWindow.Children.TryFind(condition: UICondition.CreateFromClassName(className: "Windows.UI.Core.CoreWindow").AndWith(newCondition: UICondition.CreateFromName(name: topWindow.Name)), element: out element); ++num)
                {
                    Thread.Sleep(millisecondsTimeout: 100);
                }
                if (element == null)
                {
                    throw new UIObjectNotFoundException(message: string.Format(format: "Unable to find {0} in {1}", arg0: "Windows.UI.Core.CoreWindow", arg1: topWindow));
                }
                Log.Out(msg: "Found {0} in {1} tries", (object)"Windows.UI.Core.CoreWindow", (object)num);
            }

            return(element);
        }
Esempio n. 2
0
        static void BuildDescription(Condition condition, StringBuilder stringBuilder)
        {
            if (condition == Condition.TrueCondition)
            {
                stringBuilder.Append(value: "True");
            }
            else if (condition == Condition.FalseCondition)
            {
                stringBuilder.Append(value: "False");
            }
            else
            {
                switch (condition)
                {
                case PropertyCondition propertyCondition:
                    stringBuilder.Append(value: UIProperty.Get(property: propertyCondition.Property));
                    stringBuilder.Append(value: " = ");
                    stringBuilder.Append(value: propertyCondition.Value);
                    break;

                case AndCondition andCondition:
                    var conditions1 = andCondition.GetConditions();
                    stringBuilder.Append(value: "(");
                    for (var index = 0; index < conditions1.Length; ++index)
                    {
                        BuildDescription(condition: conditions1[index], stringBuilder: stringBuilder);
                        if (index == conditions1.Length - 1)
                        {
                            stringBuilder.Append(value: ")");
                        }
                        else
                        {
                            stringBuilder.Append(value: " and ");
                        }
                    }

                    break;

                case OrCondition orCondition:
                    var conditions2 = orCondition.GetConditions();
                    stringBuilder.Append(value: "(");
                    for (var index = 0; index < conditions2.Length; ++index)
                    {
                        BuildDescription(condition: conditions2[index], stringBuilder: stringBuilder);
                        if (index == conditions2.Length - 1)
                        {
                            stringBuilder.Append(value: ")");
                        }
                        else
                        {
                            stringBuilder.Append(value: " or ");
                        }
                    }

                    break;

                case NotCondition notCondition:
                    stringBuilder.Append(value: "Not ");
                    BuildDescription(condition: notCondition.Condition, stringBuilder: stringBuilder);
                    break;

                default:
                    stringBuilder.Append(value: "[Unknown UICondition]");
                    break;
                }
            }
        }