Example #1
0
        /// <summary>
        /// 得到iframe元素数据
        /// </summary>
        /// <param name="evo"></param>
        /// <returns></returns>
        public IEnumerable <AW> GetIFrameElement(IHTMLEventObj evo)
        {
            HTMLDocument doc = evo.srcElement.document;

            string    fullurl = doc.url.ToString();
            List <AW> list    = new List <AW>();

            AW             aw       = new AW();
            List <Record>  records  = new List <Record>();
            Record         record   = new Record();
            List <Element> elements = new List <Element>();
            Element        element  = new Element();

            record.website = fullurl.Split('/')[0] + "//" + fullurl.Split('/')[2] + "/";
            record.fullUrl = fullurl;
            //System.Windows.Forms.MessageBox.Show(GetIframeName(evo));
            record.map       = RemoveLast_(ReplaceStr(fullurl.Replace(record.website, "").Split('?')[0]) + "_" + GetIframeName(evo));
            record.page      = fullurl.Replace(record.website, "");
            record.url       = fullurl.Replace(record.website, "");
            record.iframesrc = GetIframeSrc(evo);
            aw.comment       = "";
            element.action   = "CLICK";
            element.id       = evo.srcElement.id;
            element._class   = evo.srcElement.className;

            if (!(evo.srcElement.getAttribute("name") is DBNull))
            {
                element.name = evo.srcElement.getAttribute("name");
                object val = evo.srcElement.getAttribute("name");
                if (val != null && element.id == null)
                {
                    element.name = val.ToString();
                }
                else
                {
                    element.name = ReplaceIDWithDot(element.id);
                }
            }
            else
            {
                if (element.id == null)
                {
                    element.name = element.id;
                }
                else
                {
                    element.name = ReplaceIDWithDot(element.id);
                }
            }
            if (!(evo.srcElement.getAttribute("value") is DBNull))
            {
                object val = evo.srcElement.getAttribute("value");
                if (val != null)
                {
                    element.value = val.ToString();
                }
            }
            element.csspath     = FindCssPath(evo.srcElement);
            element.xpath       = FindXPath(evo.srcElement);
            element.noattrxpath = FindFullXPath(evo.srcElement);
            if (evo.srcElement.innerText != null)
            {
                if (evo.srcElement.innerText.Length > 100)
                {
                    element.comment = evo.srcElement.innerText.Substring(0, 100);
                }
                else
                {
                    element.comment = evo.srcElement.innerText;
                }
            }

            if (!(evo.srcElement.getAttribute("type") is DBNull))
            {
                element.type = evo.srcElement.getAttribute("type");
            }

            switch (evo.srcElement.tagName.ToUpper())
            {
            case "INPUT":

                element.comment = evo.srcElement.getAttribute("value");
                if (evo.srcElement.getAttribute("type") == "text")
                {
                    element.action  = "INPUT";
                    element.comment = evo.srcElement.getAttribute("name");
                }
                else if (evo.srcElement.getAttribute("type") == "radio")
                {
                    element.action  = "CLICK";
                    element.comment = evo.srcElement.getAttribute("name");
                }
                else if (evo.srcElement.getAttribute("type") == "password")
                {
                    element.action  = "INPUT";
                    element.comment = evo.srcElement.getAttribute("name");
                }
                break;

            case "A":
                //row1["type"] = "Link";
                break;

            case "IMG":
                //row1["type"] = "Image";
                break;

            case "DIV":
                // row1["type"] = "div";
                break;

            case "SELECT":
                // row1["type"] = "select";
                break;

            case "TD":
                //row1["type"] = "table";
                break;

            case "TH":
                // row1["type"] = "table";
                break;

            case "TR":
                // row1["type"] = "table";
                break;

            default:
                //row1["type"] = evo.srcElement.tagName.ToUpper();
                break;
            }
            elements.Add(element);
            record.elements = elements;
            records.Add(record);
            aw.record = records;

            list.Add(aw);

            return(list);
        }
Example #2
0
        /// <summary>
        /// 得到页面元素
        /// </summary>
        /// <param name="evo"></param>
        /// <returns></returns>
        public IEnumerable <AW> GetElement(IHTMLEventObj evo)
        {
            string fullurl = document.url.ToString();//得到当前路径

            List <AW> list = new List <AW>();

            AW             aw       = new AW();
            List <Record>  records  = new List <Record>();
            Record         record   = new Record();
            List <Element> elements = new List <Element>();
            Element        element  = new Element();

            record.website = fullurl.Split('/')[0] + "//" + fullurl.Split('/')[2] + "/"; //网址路径  http://xxxxxx/
            if (fullurl.EndsWith("/"))                                                   //如果以/ 结尾
            {
                char[] MyChar = { '_', '/' };
                record.fullUrl = fullurl.TrimEnd(MyChar);                                                                    //去除 以 _ /结尾
                record.map     = RemoveLast_(ReplaceStr(fullurl.Replace(record.website, "").Split('?')[0]).TrimEnd(MyChar)); //去除特殊符号,替换最后的_添加 .map结尾
                record.page    = fullurl.Replace(record.website, "").TrimEnd(MyChar);                                        //得到相应的指向页面
                record.url     = fullurl.Replace(record.website, "").TrimEnd(MyChar);                                        //得到除去 ip 端口外的url
            }
            else
            {
                record.fullUrl = fullurl;
                record.map     = RemoveLast_(ReplaceStr(fullurl.Replace(record.website, "").Split('?')[0]));
                record.page    = fullurl.Replace(record.website, "");
                record.url     = fullurl.Replace(record.website, "");
            }
            record.page = fullurl.Replace(record.website, "");
            record.url  = fullurl.Replace(record.website, "");

            aw.comment = "";

            element.action = "CLICK";                               //网页标签 事件
            element.id     = evo.srcElement.id;                     //触发事件的标签的ID
            element._class = evo.srcElement.className;              //触发事件的标签的类名
            if (!(evo.srcElement.getAttribute("name") is DBNull))   //如果标签 name 为不存在的值
            {
                element.name = evo.srcElement.getAttribute("name"); //得到标签名称
                object val = evo.srcElement.getAttribute("name");
                if (val != null && element.id == null)
                {
                    element.name = val.ToString();
                }
                else
                {
                    element.name = ReplaceIDWithDot(element.id); //如果没有标签名称,则用ID表示
                }
            }
            else
            {
                if (element.id == null)
                {
                    element.name = element.id;
                }
                else
                {
                    element.name = ReplaceIDWithDot(element.id);
                }
            }
            if (!(evo.srcElement.getAttribute("value") is DBNull))
            {
                object val = evo.srcElement.getAttribute("value");
                if (val != null)
                {
                    element.value = val.ToString();
                }
            }
            element.csspath     = FindCssPath(evo.srcElement);   //获取当前标签的css 选择器
            element.xpath       = FindXPath(evo.srcElement);     //获取标签地址
            element.noattrxpath = FindFullXPath(evo.srcElement); //获取标签的全地址 /xx/xx/xx
            if (evo.srcElement.innerText != null)                //源标签内容不为空
            {
                if (evo.srcElement.innerText.Length > 100)
                {
                    element.comment = evo.srcElement.innerText.Substring(0, 100); //标签备注为前100个字符
                }
                else
                {
                    element.comment = evo.srcElement.innerText;
                }
            }

            if (!(evo.srcElement.getAttribute("type") is DBNull))
            {
                element.type = evo.srcElement.getAttribute("type");
            }
            switch (evo.srcElement.tagName.ToUpper())
            {
            case "INPUT":

                element.comment = evo.srcElement.getAttribute("value");
                if (evo.srcElement.getAttribute("type") == "text")
                {
                    element.action  = "INPUT";
                    element.comment = evo.srcElement.getAttribute("name");
                }
                else if (evo.srcElement.getAttribute("type") == "radio")
                {
                    element.action  = "CLICK";
                    element.comment = evo.srcElement.getAttribute("name");
                }
                else if (evo.srcElement.getAttribute("type") == "password")
                {
                    element.action  = "INPUT";
                    element.comment = evo.srcElement.getAttribute("name");
                }
                else if (evo.srcElement.getAttribute("type") == "button")
                {
                }
                break;

            case "A":
                //row1["type"] = "Link";
                break;

            case "IMG":
                //row1["type"] = "Image";
                break;

            case "DIV":
                // row1["type"] = "div";
                break;

            case "SELECT":
                // row1["type"] = "select";
                break;

            case "TD":
                //row1["type"] = "table";
                break;

            case "TH":
                // row1["type"] = "table";
                break;

            case "TR":
                // row1["type"] = "table";
                break;

            default:
                //row1["type"] = evo.srcElement.tagName.ToUpper();
                break;
            }
            elements.Add(element);
            record.elements = elements;
            records.Add(record);
            aw.record = records;

            list.Add(aw);

            return(list);
        }
Example #3
0
        public IEnumerable <AW> GetElement(IHTMLEventObj evo)
        {
            string fullurl = document.url.ToString();

            List <AW> list = new List <AW>();

            AW             aw       = new AW();
            List <Record>  records  = new List <Record>();
            Record         record   = new Record();
            List <Element> elements = new List <Element>();
            Element        element  = new Element();

            record.website = fullurl.Split('/')[0] + "//" + fullurl.Split('/')[2] + "/";
            if (fullurl.EndsWith("/"))
            {
                char[] MyChar = { '_', '/' };
                record.fullUrl = fullurl.TrimEnd(MyChar);
                record.map     = ReplaceStr(fullurl.Replace(record.website, "").Split('?')[0]).TrimEnd(MyChar) + ".map";
                record.page    = fullurl.Replace(record.website, "").TrimEnd(MyChar);
                record.url     = fullurl.Replace(record.website, "").TrimEnd(MyChar);
            }
            else
            {
                record.fullUrl = fullurl;
                record.map     = ReplaceStr(fullurl.Replace(record.website, "").Split('?')[0]) + ".map";
                record.page    = fullurl.Replace(record.website, "");
                record.url     = fullurl.Replace(record.website, "");
            }
            record.page = fullurl.Replace(record.website, "");
            record.url  = fullurl.Replace(record.website, "");

            aw.comment = "";

            element.action = "CLICK";
            element.id     = evo.srcElement.id;
            element._class = evo.srcElement.className;
            if (!(evo.srcElement.getAttribute("name") is DBNull))
            {
                element.name = evo.srcElement.getAttribute("name");
                object val = evo.srcElement.getAttribute("name");
                if (val != null && element.id == null)
                {
                    element.name = val.ToString();
                }
                else
                {
                    element.name = element.id;
                }
            }
            else
            {
                element.name = element.id;
            }
            if (!(evo.srcElement.getAttribute("value") is DBNull))
            {
                object val = evo.srcElement.getAttribute("value");
                if (val != null)
                {
                    element.value = val.ToString();
                }
            }
            element.csspath     = FindCssPath(evo.srcElement);
            element.xpath       = FindXPath(evo.srcElement);
            element.noattrxpath = FindFullXPath(evo.srcElement);
            if (evo.srcElement.innerText != null)
            {
                if (evo.srcElement.innerText.Length > 100)
                {
                    element.comment = evo.srcElement.innerText.Substring(0, 100);
                }
                else
                {
                    element.comment = evo.srcElement.innerText;
                }
            }

            if (!(evo.srcElement.getAttribute("type") is DBNull))
            {
                element.type = evo.srcElement.getAttribute("type");
            }
            switch (evo.srcElement.tagName.ToUpper())
            {
            case "INPUT":

                element.comment = evo.srcElement.getAttribute("value");
                if (evo.srcElement.getAttribute("type") == "text")
                {
                    element.action  = "INPUT";
                    element.comment = evo.srcElement.getAttribute("name");
                }
                else if (evo.srcElement.getAttribute("type") == "radio")
                {
                    element.action  = "CLICK";
                    element.comment = evo.srcElement.getAttribute("name");
                }
                else if (evo.srcElement.getAttribute("type") == "password")
                {
                    element.action  = "INPUT";
                    element.comment = evo.srcElement.getAttribute("name");
                }
                break;

            case "A":
                //row1["type"] = "Link";
                break;

            case "IMG":
                //row1["type"] = "Image";
                break;

            case "DIV":
                // row1["type"] = "div";
                break;

            case "SELECT":
                // row1["type"] = "select";
                break;

            case "TD":
                //row1["type"] = "table";
                break;

            case "TH":
                // row1["type"] = "table";
                break;

            case "TR":
                // row1["type"] = "table";
                break;

            default:
                //row1["type"] = evo.srcElement.tagName.ToUpper();
                break;
            }
            elements.Add(element);
            record.elements = elements;
            records.Add(record);
            aw.record = records;

            list.Add(aw);

            return(list);
        }