internal static string SingleProperty(HtmlNode node, NodeCommandObject cmd)
        {
            string value = string.Empty;
            MethodInfo info = node.GetType().GetMethod(cmd.Commands[0].Operation);
            object[] param = new object[] { cmd.Xpath };

            if (cmd.Commands[0].Property.Equals("Attribute"))
            {
                HtmlNode _nodeFromRoot = (HtmlNode)info.Invoke(node, param);
                value = _nodeFromRoot.Attributes[cmd.Commands[0].Value].Value;
            }
            else
            {
                try
                {
                    HtmlNode _nodeFromRoot = (HtmlNode)info.Invoke(node, param);
                    value = (string)_nodeFromRoot.GetType().GetProperty(cmd.Commands[0].Property).GetValue(_nodeFromRoot, null);
                }
                catch
                {

                }
            }
            return value;
        }
        internal static string DualProperty(HtmlNode node, NodeCommandObject cmd)
        {
            string value = string.Empty;
            MethodInfo info = node.GetType().GetMethod(cmd.Commands[0].Operation);
            object[] param = new object[] { cmd.Xpath };
            try
            {
                HtmlNode _nodeFromRoot = (HtmlNode)info.Invoke(node, param);
                var initial = _nodeFromRoot.GetType().GetProperty(cmd.Commands[0].Property).GetValue(_nodeFromRoot);
                value = (string)initial.GetType().GetProperty(cmd.Commands[1].Property).GetValue(initial);
            }
            catch
            {

            }

            return value;
        }