Exemplo n.º 1
0
        /// <summary>
        /// Localiza um elemento pelo Texto
        /// </summary>
        /// <param name="tag">Tag do elemento que será localizado</param>
        /// <param name="propriedade">Atributo que será analisado</param>
        /// <param name="texto">Texto interno do elemento</param>
        /// <param name="maximoTentativas">Quantidade máxima de tentativas de localizar o elemento</param>
        /// <param name="delay">Tempo de espera entre as tentativas</param>
        /// <param name="lancaExcecao">Permite ou não lançar exceção caso o elemento não seja localizado</param>
        public List <IWebElement> LocalizaElementosPropriedade(string tag, string propriedade, string texto, int maximoTentativas, int delay, bool lancaExcecao)
        {
            int tentativas = 0;

            List <IWebElement> elementos = new List <IWebElement>();

            while (tentativas < maximoTentativas && elementos.Count == 0)
            {
                tentativas++;
                try
                {
                    foreach (IWebElement e in Navegador.FindElementsByTagName(tag))
                    {
                        if (e.GetAttribute(propriedade) != null && e.GetAttribute(propriedade).ToUpper().Equals(texto.ToUpper()))
                        {
                            elementos.Add(e);
                        }
                    }
                    if (elementos.Count == 0)
                    {
                        Thread.Sleep(1000 * delay);
                    }
                }
                catch
                {
                    Thread.Sleep(1000 * delay);
                }
            }

            if (elementos.Count == 0 && lancaExcecao)
            {
                throw new Exception(string.Format("Não foi possível localizar o elemento contendo a texto {0}", texto));
            }
            return(elementos);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Localiza um elemento pelo Texto
        /// </summary>
        /// <param name="tag">Tag do elemento que será localizado</param>
        /// <param name="texto">Texto interno do elemento</param>
        /// <param name="maximoTentativas">Quantidade máxima de tentativas de localizar o elemento</param>
        /// <param name="delay">Tempo de espera entre as tentativas</param>
        /// <param name="lancaExcecao">Permite ou não lançar exceção caso o elemento não seja localizado</param>
        public IWebElement LocalizaElementoTexto(string tag, string texto, int maximoTentativas, int delay, bool lancaExcecao)
        {
            IWebElement elemento   = null;
            int         tentativas = 0;

            while (tentativas < maximoTentativas && elemento == null)
            {
                tentativas++;
                try
                {
                    foreach (IWebElement e in Navegador.FindElementsByTagName(tag))
                    {
                        if (e.Text != null && e.Text.ToUpper().Equals(texto.ToUpper()))
                        {
                            elemento = e;
                            break;
                        }
                    }
                    if (elemento == null)
                    {
                        Thread.Sleep(1000 * delay);
                    }
                }
                catch
                {
                    Thread.Sleep(1000 * delay);
                }
            }

            if (elemento == null && lancaExcecao)
            {
                throw new Exception(string.Format("Não foi possível localizar o elemento contendo a texto {0}", texto));
            }
            return(elemento);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Localiza um elemento pelo Texto
        /// </summary>
        /// <param name="tag">Tag do elemento que será localizado</param>
        /// <param name="propriedade">Atributo que será analisado</param>
        /// <param name="texto">Texto interno do elemento</param>
        /// <param name="maximoTentativas">Quantidade máxima de tentativas de localizar o elemento</param>
        /// <param name="delay">Tempo de espera entre as tentativas</param>
        /// <param name="lancaExcecao">Permite ou não lançar exceção caso o elemento não seja localizado</param>
        public IWebElement LocalizaElementoPropriedade(string tag, string propriedade, string texto, int maximoTentativas, int delay, bool lancaExcecao)
        {
            IWebElement elemento   = null;
            int         tentativas = 0;

            while (tentativas < maximoTentativas && elemento == null)
            {
                tentativas++;
                try
                {
                    var elementos            = Navegador.FindElementsByTagName(tag);
                    var elementosLocalizados = elementos.Where(e => e.GetAttribute(propriedade) != null && e.GetAttribute(propriedade).ToUpper().Equals(texto.ToUpper()));

                    if (elementosLocalizados.Any())
                    {
                        elemento = elementosLocalizados.FirstOrDefault();
                    }

                    //foreach (IWebElement e in Navegador.FindElementsByTagName(tag))
                    //{
                    //    if (e.GetAttribute(propriedade) != null && e.GetAttribute(propriedade).ToUpper().Equals(texto.ToUpper()))
                    //    {
                    //        elemento = e;
                    //        break;
                    //    }
                    //}
                    if (elemento == null)
                    {
                        Thread.Sleep(1000 * delay);
                    }
                }
                catch
                {
                    Thread.Sleep(1000 * delay);
                }
            }

            if (elemento == null && lancaExcecao)
            {
                throw new Exception(string.Format("Não foi possível localizar o elemento contendo a texto {0}", texto));
            }
            return(elemento);
        }