public IHTMLTableRow AddRow(params object[] e)
        {
            IHTMLTableRow r = AddRow();

            foreach (object x in e)
            {
                IHTMLTableColumn c = new IHTMLTableColumn();

                Expando q = Expando.Of(x);

                if (x == null)
                {
                    // do nothing
                }
                else if (q.IsString)
                {
                    c.innerHTML = q.GetValue();
                }
                else
                {
                    c.appendChild(q.To <INode>());
                }

                r.appendChild(c);
            }

            return(r);
        }
        public IEnumerator <INativeElement> GetEnumerator()
        {
            var result = new Expando(ieDocument.HtmlDocument).GetValue(fieldName);

            if (result == null)
            {
                yield break;
            }

            var resultAsExpando = new Expando(result);
            var length          = resultAsExpando.GetValue <int>("snapshotLength");

            for (var i = 0; i < length; i++)
            {
                var method  = resultAsExpando.AsExpando.GetMethod("snapshotItem", BindingFlags.Public);
                var element = method.Invoke(resultAsExpando.Object, new object[] { i }) as IHTMLElement;
                if (element != null)
                {
                    yield return(new IEElement(element));
                }
            }
        }