/// <summary> /// Executes the specified context. /// </summary> /// <param name="context">The context.</param> /// <returns>The action result.</returns> protected override ActionResult Execute(WaitForElementContext context) { var property = this.ElementLocator.GetElement(context.PropertyName); var result = property.WaitForElementCondition(context.Condition, context.Timeout); return(result ? ActionResult.Successful() : ActionResult.Failure( new ElementExecuteException( "Could not perform action '{0}' before timeout: {1}", context.Condition, context.Timeout))); }
/// <summary> /// Executes the specified context. /// </summary> /// <param name="context">The context.</param> /// <returns>The action result.</returns> protected override ActionResult Execute(WaitForElementContext context) { var timeout = context.Timeout.GetValueOrDefault(DefaultTimeout); var waitStartTime = DateTime.Now; var property = this.GetElement(context.PropertyName, timeout); var remainingTimeout = timeout - (DateTime.Now - waitStartTime); var result = property.WaitForElementCondition(context.Condition, remainingTimeout); return(result ? ActionResult.Successful() : ActionResult.Failure( new ElementExecuteException( "Could not perform action '{0}' before timeout: {1}", context.Condition, timeout))); }