¿Cómo puedo verificar si una cadena de texto dada está presente en la página actual usando Selenium?Buscar texto en la página con Selenium 2
Respuesta
El código es la siguiente:
def elem = driver.findElement(By.xpath("//*[contains(.,'search_text')]"));
if (elem == null) println("The text is not found on the page!");
Por alguna razón, no parece que ciertos elementos para responder a la búsqueda "genérico" que aparece en la otra respuesta. Al menos no en Selenium2library bajo el marco del robot que es donde necesitaba este encantamiento para encontrar el elemento en particular:
xpath=//script[contains(@src, 'super-sekret-url.example.com')]
Si su buscar toda la página de algún texto, a continuación, proporcionando una xpath
o selector
a hallazgo un elemento no es necesario. El siguiente código podría ayudar ..
Assert.assertEquals(driver.getPageSource().contains("text_to_search"), true);
Esto encontrará texto que existe en la fuente, pero no es visible para el usuario. Por ejemplo, si está buscando la palabra "cuerpo", esto siempre será verdadero. [Esta solución] (http://stackoverflow.com/a/42145466/531762) tampoco usa XPaths, pero solo encuentra texto visible. Además, esa solución incluye el texto que hace en el error de aserción para ayudar en la depuración. – Thunderforge
Una alternativa más simple (pero probablemente menos eficiente) a XPaths es sólo recibir todo el texto visible en el cuerpo de la página, así:
def pageText = browser.findElement(By.tagName("body")).getText();
Entonces, si usted Usando JUnit o algo así, puede usar una afirmación para verificar que la cadena que está buscando está contenida en ella.
assertThat("Text not found on page", pageText, containsString(searchText));
Usando un XPath es tal vez más eficiente, pero de esta manera es más fácil de entender para quienes no están familiarizados con ella. Además, un AssertionError
generado por assertThat
incluirá el texto que existe en la página, que puede ser deseable para la depuración ya que cualquiera que mire los registros puede ver claramente qué texto hay en la página si lo que estamos buscando no es.
- 1. Selenium 2: Interrumpir una carga de página
- 2. Buscar texto entre 2 Cotizaciones con jQuery
- 3. Usando el IWebDriver de Selenium 2 para interactuar con elementos en la página
- 4. Buscar todos los nodos de texto en la página HTML
- 5. Selenium 2 (WebDriver) o Geb?
- 6. Problemas con espera explícita e implícita en Selenium Webdriver (Selenium 2) con Python
- 7. Selenium 1 vs 2
- 8. Selenium Grid + Maven 2
- 9. ¿Puede JavaScript hablar con Selenium 2?
- 10. ¿Cómo ejecuto Firebug en Selenium WebDriver (Selenium 2)?
- 11. Manejo de alertas en Selenium WebDriver (selenio 2) con Java
- 12. Guardar contenido de página completa con Selenium
- 13. Alerta de manejo en Selenium WebDriver (Selenium 2)
- 14. Maximice WebDriver (Selenium 2) en Python
- 15. Buscar texto en texto Core
- 16. ¿Cómo se espera la redirección de una página en Selenium?
- 17. NHibernate + SqlServer buscar con texto completo
- 18. ¿Hay una versión Selenium 2 de Selenium IDE?
- 19. Selenium WebDriver objeto de página
- 20. Buscar texto en una cadena con C#
- 21. Javascript/jQuery Buscar texto duplicado
- 22. No se puede escribir el signo "&" en Selenium-2
- 23. Selenium 2 haga clic con el botón derecho
- 24. Cómo usar selenium 2 PageFactory init Elements con Wait.until()?
- 25. Buscar archivo de texto
- 26. Cómo verifico que un elemento no existe en Selenium 2
- 27. Lectura de texto usando selenium webdriver (xpath)
- 28. Búsqueda de iFrame anidado utilizando Selenium 2
- 29. Buscar seleccionar la opción por texto
- 30. Obteniendo la URL de la página actual usando Selenium WebDriver
Lo anterior no es técnicamente cierto para el selenio en .Net. Si el elemento no se encuentra arrojará una NoSuchElementException. También tenga en cuenta que el xpath contiene distingue entre mayúsculas y minúsculas –
@Ryan esta diferencia es notable, buen punto – Grooveek
Selenium 2 con WebForms se pone un poco tedioso. Creé algunos métodos de envoltura que lo hacen un poco más fácil. http://www.foliotek.com/devblog/simplifying-c-selenium-2-tests-for-asp-net-webforms/ – Narnian