public override ObjectAttribute GetAttributeByName(string AttributeName)
        {
            ObjectAttributeString lAttribute = new ObjectAttributeString();
            lAttribute.SetAttributeName(AttributeName);

            switch(AttributeName)
            {
                case "innerText":
                    lAttribute.SetAttributeValue(HtmlElement.innerText);
                    return lAttribute;
            }

            lAttribute.SetAttributeValue(HtmlElement.getAttribute(AttributeName, 0).ToString());

            return lAttribute;
        }
        //Singleton check
        bool CheckCurrentObject(ref ObjectInterfacePrototipe lObjectInterface)
        {
            ObjectPrototipe lObjectPrototipe= lObjectInterface.GetCurrentObject();

            if (GetAttributeByName("name") != null)
            {
                ObjectAttributeString lObjectAttributeString = new ObjectAttributeString();
                lObjectAttributeString.SetAttributeName("name");
                lObjectAttributeString.SetAttributeValue(lObjectPrototipe.GetObjectName());
                if (!GetAttributeByName("name").ComapreAttributes((ObjectAttribute)lObjectAttributeString))
                    return false;
            }

            foreach (ObjectAttribute lObjectAttribute in cObjectAttributes)
            {
                if (lObjectAttribute.GetAttributeName() == "name")
                    continue;
                if(!lObjectAttribute.ComapreAttributes(lObjectPrototipe.GetAttributeByName(lObjectAttribute.GetAttributeName())))
                    return false;
            }

            return true;
        }
        public override ObjectAttribute GetAttributeByName(string AttributeName)
        {
            ObjectAttributeString lAttribute = new ObjectAttributeString();
            lAttribute.AttributeName= AttributeName;

            switch(AttributeName)
            {
                case "innerText":
                    if(HtmlElement.innerText==null)
                        lAttribute.Value="";
                    else
                        lAttribute.Value=HtmlElement.innerText;
                    return lAttribute;
                case "innerHTML":
                    if (HtmlElement.innerHTML == null)
                        lAttribute.Value="";
                    else
                        lAttribute.Value=HtmlElement.innerHTML;
                    return lAttribute;
                case "outerHTML":
                    if (HtmlElement.outerHTML == null)
                        lAttribute.Value="";
                    else
                        lAttribute.Value=HtmlElement.outerHTML;
                    return lAttribute;
                case "style":
                    if (HtmlElement.style == null)
                        lAttribute.Value="";
                    else
                        lAttribute.Value=HtmlElement.style.cssText;
                    return lAttribute;
            }

            lAttribute.Value=HtmlElement.getAttribute(AttributeName, 0).ToString();

            return lAttribute;
        }
        //Singleton check
        bool CheckCurrentObject(ref ObjectInterfacePrototipe lObjectInterface)
        {
            ObjectPrototipe lObjectPrototipe= lObjectInterface.GetCurrentObject();

            if (GetAttributeByName("name") != null)
            {
                ObjectAttributeString lObjectAttributeString = new ObjectAttributeString("name", lObjectPrototipe.GetObjectName());
                if (GetAttributeByName("name")!=lObjectAttributeString)
                    return false;
            }

            foreach (ObjectAttribute lObjectAttribute in (from n in cObjectAttributes where n.AttributeName!="name" && n.AttributeName!="negation" select n))
            {
                if(lObjectAttribute!=lObjectPrototipe.GetAttributeByName(lObjectAttribute.AttributeName))
                    return false;
            }

            return true;
        }