Exemplo n.º 1
0
        /// <summary>
        /// Waits for an attribute
        /// </summary>
        /// <param name="attribute"></param>
        /// <param name="pattern"></param>
        /// <param name="timeout"></param>
        /// <returns></returns>
        public WebElement WaitAttribute(string attribute, string pattern, int timeout = -1)
        {
            var regex = new Regex(pattern, RegexOptions.IgnoreCase);

            _session.SendUntil(timeout,
                               () => this.Attribute(attribute),
                               (r) => regex.IsMatch((string)r)
                               );
            return(this);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Returns all the web elements matching the given method and value
        /// </summary>
        private WebElements FindAllElements(Strategy strategy, string value, int minimum, int timeout)
        {
            RemoteSession session = this.session;
            string        uri     = this.uri + "/elements";

            try {
                var  method   = By.FormatStrategy(strategy);
                List elements = session.SendUntil(timeout,
                                                  () => (List)session.Send(RequestMethod.POST, uri, "using", method, "value", value),
                                                  (r) => r.Count >= minimum
                                                  );
                return(new WebElements(session, elements));
            } catch (Errors.TimeoutError) {
                throw new Errors.NoSuchElementError(strategy, value);
            }
        }