Ejemplo n.º 1
0
        public async Task <SerializedAXNode> SnapshotAsync(AccessibilitySnapshotOptions options = null)
        {
            options ??= new AccessibilitySnapshotOptions();
            var accessibilityTree = await _getAXTreeAsync(options.Root).ConfigureAwait(false);

            if (!options.InterestingOnly)
            {
                if (options.Root != null)
                {
                    return(accessibilityTree.Needle != null?SerializeTree(accessibilityTree.Needle)[0] : null);
                }

                return(SerializeTree(accessibilityTree.Tree)[0]);
            }

            var interestingNodes = new List <IAXNode>();

            CollectInterestingNodes(interestingNodes, accessibilityTree.Tree, false);
            if (options.Root != null && (accessibilityTree.Needle == null || !interestingNodes.Contains(accessibilityTree.Needle)))
            {
                return(null);
            }

            return(SerializeTree(accessibilityTree.Needle ?? accessibilityTree.Tree, interestingNodes)[0]);
        }
Ejemplo n.º 2
0
        public Task <SerializedAXNode> SnapshotAsync(AccessibilitySnapshotOptions options = null)
        {
            var root = (options?.Root as ElementHandle)?.ElementChannel;

            return(_channel.AccessibilitySnapshotAsync(options?.InterestingOnly, root));
        }