Example #1
0
        public void Intercept(IInvocation invocation)
        {
            var attribute = invocation.GetAttribute <Measure>();

            if (attribute == null)
            {
                return;
            }

            var metricName = attribute.GetValue(nameof(Measure.MetricName));

            var stopwatch = new Stopwatch();

            stopwatch.Start();
            invocation.Proceed();
            stopwatch.Stop();

            Console.WriteLine($"{metricName}: {stopwatch.ElapsedMilliseconds}");
        }
Example #2
0
        private async Task InterceptAsync(IInvocation invocation)
        {
            if (invocation.IsGetterPropertyWithAttribute <SelectorAttribute>())
            {
                var attribute = invocation.GetAttribute <SelectorAttribute>();

                if (invocation.InvocationTarget is PageObject pageObject)
                {
                    var result = await invocation.GetReturnValue(pageObject, attribute).ConfigureAwait(false);

                    invocation.ReturnValue = result;
                    return;
                }
                if (invocation.InvocationTarget is ElementObject elementObject)
                {
                    var result = await invocation.GetReturnValue(elementObject, attribute).ConfigureAwait(false);

                    invocation.ReturnValue = result;
                    return;
                }
            }

            invocation.ReturnValue = null;
        }