public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen)
        {
            Log.Debug("Run: Drag");

            var elementId = req.Params.ElementId;
            var xSpeed    = req.Params.XSpeed;
            var ySpeed    = req.Params.YSpeed;
            var result    = new Result();

            try
            {
                var geometry = objectList.Get(elementId)?.Geometry;
                var x        = geometry.CenterX;
                var y        = geometry.CenterY;

                result.Value = inputGen.Drag(x, y, x + xSpeed, y + ySpeed);
            }
            catch (TimeoutException te)
            {
                Log.Debug(te.ToString());
                result.Status = 44;
                result.Value  = false;
            }
            catch (Exception e)
            {
                Log.Debug(e.ToString());
                result.Value = false;
            }

            return(result);
        }
        public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen)
        {
            Log.Debug("Run: Click");

            var elementId = req.Params.ElementId;
            var result    = new Result();

            try
            {
                var geometry = objectList.Get(elementId)?.Geometry;
#if WATCH
                Log.Debug($"geometry X:{geometry.X}, Y:{geometry.Y}, Width:{geometry.Width}, Height:{geometry.Height}");
#endif
                result.Value = inputGen.Click(geometry.CenterX, geometry.CenterY);
            }
            catch (TimeoutException te)
            {
                Log.Debug(te.ToString());
                result.Status = 44;
                result.Value  = false;
            }
            catch (Exception e)
            {
                Log.Debug(e.ToString());
                result.Value = false;
            }

            return(result);
        }
Esempio n. 3
0
        public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen)
        {
            Log.Debug("Run: SetText");

            var elementId = req.Params.ElementId;
            var newValue  = req.Params.Text;
            var replace   = req.Params.Replace;
            var result    = new Result();

            if (string.IsNullOrEmpty(elementId))
            {
                var focused = objectList.GetFocusedElementIds();
                foreach (var id in focused)
                {
                    if (objectList.Get(id)?.HasProperty("Text") == true)
                    {
                        elementId = id;
                    }
                }
                Log.Debug("Find last focused element to set text : " + elementId);
            }

            if (string.IsNullOrEmpty(elementId))
            {
                Log.Debug("There is no element to set Text");
                return(result);
            }

            var oldValue = objectList.Get(elementId)?.GetPropertyValue("Text");

            if (!replace)
            {
                newValue = oldValue + newValue;
            }

            var ret = objectList.Get(elementId)?.SetPropertyValue("Text", newValue);

            if (ret == true)
            {
                result.Value = ret;
            }

            return(result);
        }
        public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen)
        {
            Log.Debug("Run: GetDisplayed");

            var elementId = req.Params.ElementId;

            var result  = new Result();
            var element = objectList.Get(elementId);

            result.Value = (element != null) ? true : false;

            return(result);
        }
        public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen)
        {
            Log.Debug("Run: GetLocation");
            var elementId = req.Params.ElementId;
            var result    = new Result();

            var geometry = objectList.Get(elementId)?.Geometry;

            if (geometry != null)
            {
                result.Value = new Result.Location(geometry.X, geometry.Y);
            }

            return(result);
        }
        public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen)
        {
            Log.Debug("Run: GetText");

            var elementId = req.Params.ElementId;

            var result = new Result();
            var value  = objectList.Get(elementId)?.Text;

            if (value != null)
            {
                result.Value = value;
            }

            return(result);
        }
        public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen)
        {
            Log.Debug("Run: SetAttribute");

            var elementId    = req.Params.ElementId;
            var propertyName = req.Params.Attribute;
            var newValue     = req.Params.Value;
            var result       = new Result();

            var ret = objectList.Get(elementId)?.SetPropertyValue(propertyName, newValue);

            if (ret == true)
            {
                result.Value = ret;
            }
            return(result);
        }
Esempio n. 8
0
        public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen)
        {
            Log.Debug("Run: GetSize");

            var elementId = req.Params.ElementId;

            var result   = new Result();
            var geometry = objectList.Get(elementId)?.Geometry;

            if (geometry != null)
            {
                result.Value = new Result.Size(geometry.Width, geometry.Height);
            }
            else
            {
                result.Value = new Result.Size();
            }

            return(result);
        }
Esempio n. 9
0
        public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen)
        {
            Log.Debug("Run: TouchMove");
            var elementId = req.Params.ElementId;
            var xDown     = req.Params.XDown;
            var yDown     = req.Params.YDown;
            var xUp       = req.Params.XUp;
            var yUp       = req.Params.YUp;
            var steps     = req.Params.Steps;
            var result    = new Result();

            try
            {
                if (!String.IsNullOrEmpty(elementId))
                {
                    var geometry = objectList.Get(elementId).Geometry;
                    result.Value = inputGen.TouchMove(geometry.CenterX, geometry.CenterY, xUp, yUp, steps);
                }
                else if ((xDown > 0) && (yDown > 0) && (xUp > 0) && (yUp > 0))
                {
                    result.Value = inputGen.TouchMove(xDown, yDown, xUp, yUp, steps);
                }
                else
                {
                    Log.Debug("Invalid values");
                }
            }
            catch (TimeoutException te)
            {
                Log.Debug(te.ToString());
                result.Status = 44;
                result.Value  = false;
            }
            catch (Exception e)
            {
                Log.Debug(e.ToString());
                result.Value = false;
            }

            return(result);
        }
        public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen)
        {
            Log.Debug("Run: TouchDown");

            var elementId = req.Params.ElementId;
            int x         = req.Params.X;
            int y         = req.Params.Y;
            var result    = new Result();

            try
            {
                if (!String.IsNullOrEmpty(elementId))
                {
                    var geometry = objectList.Get(elementId)?.Geometry;
                    result.Value = inputGen.TouchDown(geometry.CenterX, geometry.CenterY);
                }
                else if ((x > 0) && (y > 0))
                {
                    result.Value = inputGen.TouchDown(x, y);
                }
                else
                {
                    Log.Debug("Invalid values");
                }
            }
            catch (TimeoutException te)
            {
                Log.Debug(te.ToString());
                result.Status = 44;
                result.Value  = false;
            }
            catch (Exception e)
            {
                Log.Debug(e.ToString());
                result.Value = false;
            }


            return(result);
        }
Esempio n. 11
0
        public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen)
        {
            var strategy  = req.Params.Strategy;
            var elementId = req.Params.ElementId;

            Log.Debug("Run: Find with " + strategy);

            var result = new Result();
            List <Result.Element> list = new List <Result.Element>();

            if (strategy == "automationId")
            {
                var obj = objectList.Get(elementId);
                if (obj != null)
                {
                    list.Add(new Result.Element(elementId));
                }
            }
            else if (strategy == "focused")
            {
                var ids = objectList.GetFocusedElementIds();
                foreach (var id in ids)
                {
                    list.Add(new Result.Element(id));
                }
            }
            else
            {
                var ids = objectList.GetIdsByName(elementId);
                foreach (var id in ids)
                {
                    list.Add(new Result.Element(id));
                }
            }

            result.Value = list;
            return(result);
        }
        public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen)
        {
            Log.Debug("Run: GetAttribute");

            var elementId    = req.Params.ElementId;
            var propertyName = req.Params.Attribute;

            var result = new Result();

            var value = objectList.Get(elementId)?.GetPropertyValue(propertyName);

            if (value != null)
            {
                result.Value = value.ToString();
                Log.Debug(elementId + " element have " + propertyName + " property.");
            }
            else
            {
                Log.Debug(elementId + " element does not have " + propertyName + " property.");
            }

            return(result);
        }