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]); }
public Task <SerializedAXNode> SnapshotAsync(AccessibilitySnapshotOptions options = null) { var root = (options?.Root as ElementHandle)?.ElementChannel; return(_channel.AccessibilitySnapshotAsync(options?.InterestingOnly, root)); }