Beispiel #1
0
        protected override string DoImpl()
        {
            var registeredKey = this.ExecutedCommand.Parameters["ID"].ToString();
            var propertyName  = this.ExecutedCommand.Parameters["NAME"].ToString();

            FlaUIDriverElement element = this.Automator.ElementsRegistry.GetRegisteredElement(registeredKey);

            AutomationElement flaUiElement = element.FlaUIElement;


            if (propertyName == "ToggleState")
            {
                var ToggleState = flaUiElement.Patterns.Toggle.PatternOrDefault.ToggleState;

                return(this.JsonResponse(ResponseStatus.Success, ToggleState.ToString()));
            }


            try
            {
                var propertyObject = flaUiElement.Properties.GetType().GetProperty(propertyName).GetValue((object)flaUiElement.Properties, null);

                var property = propertyObject.GetType().GetProperty("ValueOrDefault").GetValue(propertyObject);

                return(this.JsonResponse(ResponseStatus.Success, PrepareValueToSerialize(property)));
            }
            catch (Exception)
            {
                return(this.JsonResponse());
            }
        }
        public string RegisterElement(FlaUIDriverElement element)
        {
            Interlocked.Increment(ref safeInstanceCount);

            var registeredKey = element.GetHashCode() + "-"
                                + safeInstanceCount.ToString(string.Empty, CultureInfo.InvariantCulture);

            this.registeredElements.Add(registeredKey, element);

            return(registeredKey);
        }
        protected override string DoImpl()
        {
            var registeredKey = this.ExecutedCommand.Parameters["ID"].ToString();

            FlaUIDriverElement element = this.Automator.ElementsRegistry.GetRegisteredElement(registeredKey);

            AutomationElement flaUiElement = element.FlaUIElement;

            var value = flaUiElement.Properties.ControlType.ToString();

            return(this.JsonResponse(ResponseStatus.Success, value));
        }
Beispiel #4
0
        private void ValuePatternSetValue(FlaUIDriverElement element, IEnumerable <JToken> args)
        {
            var value = args.ElementAtOrDefault(1);

            if (value == null)
            {
                var msg = HelpArgumentsErrorMsg;
                throw new AutomationException(msg, ResponseStatus.JavaScriptError);
            }

            element.FlaUIElement.Patterns.Value.Pattern.SetValue(value.ToString());
        }
        protected override string DoImpl()
        {
            var registeredKey = this.ExecutedCommand.Parameters["ID"].ToString();

            FlaUIDriverElement element = this.Automator.ElementsRegistry.GetRegisteredElement(registeredKey);

            AutomationElement flaUiElement = element.FlaUIElement;


            OrientationType orientationType = (OrientationType)flaUiElement.Properties.Orientation.ValueOrDefault;

            return(this.JsonResponse(ResponseStatus.Success, orientationType.ToString()));
        }
Beispiel #6
0
        protected override string DoImpl()
        {
            var haveElement = this.ExecutedCommand.Parameters.ContainsKey("element");
            var haveOffset  = this.ExecutedCommand.Parameters.ContainsKey("xoffset") &&
                              this.ExecutedCommand.Parameters.ContainsKey("yoffset");

            if (!(haveElement || haveOffset))
            {
                // TODO: in the future '400 : invalid argument' will be used
                return(this.JsonResponse(ResponseStatus.UnknownError, "WRONG PARAMETERS"));
            }

            var resultPoint = Mouse.Position;

            if (haveElement)
            {
                var registeredKey          = this.ExecutedCommand.Parameters["element"].ToString();
                FlaUIDriverElement element = this.Automator.ElementsRegistry.GetRegisteredElementOrNull(registeredKey);

                if (element != null)
                {
                    var rect = element.Properties.BoundingRectangle;
                    resultPoint.X = rect.Left;
                    resultPoint.Y = rect.Top;
                    if (!haveOffset)
                    {
                        resultPoint.X += rect.Width / 2;
                        resultPoint.Y += rect.Height / 2;
                    }
                }
            }

            if (haveOffset)
            {
                resultPoint.X += Convert.ToInt32(this.ExecutedCommand.Parameters["xoffset"]);
                resultPoint.Y += Convert.ToInt32(this.ExecutedCommand.Parameters["yoffset"]);
            }

            DriverManager.GetActiveWindow();

            Mouse.MoveTo(resultPoint.X, resultPoint.Y);

            return(this.JsonResponse());
        }