/// <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); }
/// <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); }
/// <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); }