/// <summary> /// Invokes the method that is specified in the provided <see cref="IMessage"/> on the /// object that is represented by the current instance. /// </summary> /// <param name="msg">An <see cref="IMessage"/> that contains a dictionary of /// information about the method call. </param> /// <returns>The message returned by the invoked method, containing the return value and any /// out or ref parameters.</returns> public override IMessage Invoke(IMessage msg) { var element = this.Element; IMethodCallMessage methodCallMessage = msg as IMethodCallMessage; if (typeof(IWrapsElement).IsAssignableFrom((methodCallMessage.MethodBase as MethodInfo).DeclaringType)) { return(new ReturnMessage(element, null, 0, methodCallMessage.LogicalCallContext, methodCallMessage)); } return(WebDriverObjectProxy.InvokeMethod(methodCallMessage, element)); }
/// <summary> /// Invokes the method that is specified in the provided <see cref="IMessage"/> on the /// object that is represented by the current instance. /// </summary> /// <param name="msg">An <see cref="IMessage"/> that contains an <see cref="IDictionary"/> of /// information about the method call. </param> /// <returns>The message returned by the invoked method, containing the return value and any /// out or ref parameters.</returns> public override IMessage Invoke(IMessage msg) { var elements = this.ElementList; return(WebDriverObjectProxy.InvokeMethod(msg as IMethodCallMessage, elements)); }