// // 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); }
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()); }