private ChromiumAXNode(ChromiumSession client, AXNode payload) { _client = client; Payload = payload; _name = payload.Name != null?payload.Name.Value.ToString() : string.Empty; _role = payload.Role != null?payload.Role.Value.ToString() : "Unknown"; _richlyEditable = GetPropertyElement(payload, "editable")?.ToString() == "richtext"; _editable |= _richlyEditable; _hidden = GetPropertyElement(payload, "hidden")?.ToObject <bool>() ?? false; Focusable = GetPropertyElement(payload, "focusable")?.ToObject <bool>() ?? false; }
private JsonElement?GetPropertyElement(AXNode payload, string propertyName) => (JsonElement?)Array.Find(payload.Properties, p => string.Equals(p.Name.ToString(), propertyName, StringComparison.OrdinalIgnoreCase)) ?.Value?.Value;