コード例 #1
0
            //
            // Methods
            //
            public object Decorate(MemberInfo member, IElementLocator locator)
            {
                FieldInfo    fieldInfo    = member as FieldInfo;
                PropertyInfo propertyInfo = member as PropertyInfo;
                Type         memberType   = null;

                if (fieldInfo != null)
                {
                    memberType = fieldInfo.FieldType;
                }
                bool flag = false;

                if (propertyInfo != null)
                {
                    flag       = propertyInfo.CanWrite;
                    memberType = propertyInfo.PropertyType;
                }
                if (fieldInfo == null & (propertyInfo == null || !flag))
                {
                    return(null);
                }
                IList <By> list = CustomPageObjectMemberDecorator.CreateLocatorList(member);

                if (list.Count > 0)
                {
                    bool cache = CustomPageObjectMemberDecorator.ShouldCacheLookup(member);
                    return(CustomPageObjectMemberDecorator.CreateProxyObject(memberType, locator, list, cache));
                }
                return(null);
            }
コード例 #2
0
        public static By GetElementLocator <TPage>(Expression <Func <TPage, IWebElement> > expression)
        {
            var memberExpression = (MemberExpression)expression.Body;

            var memberInfo = memberExpression.Member;

            var locators = CustomPageObjectMemberDecorator.CreateLocatorListPublic(memberInfo);

            return(locators.FirstOrDefault());
        }