Saltar al contenido

Poner un string con html/Javascript en selenium webdriver

Este artículo fue aprobado por nuestros expertos para que tengas la seguridad de la exactitud de esta crónica.

Solución:

Si no desea crear un archivo o cargar una URL antes de poder reemplazar el contenido de la página, siempre puede aprovechar la función URL de datos, que admite HTML, CSS y JavaScript:

ChromeDriver driver = new ChromeDriver();
html_content = """

     
     
         
Hello World =)
""" driver.get("data:text/html;charset=utf-8," + html_content)

Puede cargar una página vacía, por ejemplo:


Y luego configura su HTML interno

ChromeDriver driver = new ChromeDriver();
driver.get("file://empty-page.html");
String innerHtml = "......";
driver.executeScript("document.innerHTML = " + innerHtml);

Luego dispara el evento de carga en el cuerpo.

driver.executeScript("$(document.body).trigger('load');");

Luego obtenga el HTML resultante

String result = driver.executeScript("document.body.innerHTML;");

Usando Java Selenium 2.4.2, uso lo siguiente para reemplazar el html interno de un elemento existente. Uso Apache StringEscapeUtils.escapeJavaScript para escapar del HTML porque este es un reemplazo de JavaScript del html interno.

    public void replaceHTML(By by, String html) 
      WebElement e = driver.findElement(by);
      ((JavascriptExecutor) driver).executeScript("arguments[0].innerHTML='" + StringEscapeUtils.escapeJavaScript(html) + "'", e);
    

Ejemplo de cadena html que pasé.

Notas:

  • No pude hacer funcionar el enfoque de “Lance Java” debido a caracteres de escape no válidos. Agregar una comilla simple después del signo igual solucionó este problema.

  • Probé la sugerencia de “Kenneth Baltrinic” de usar driver.get(‘about:blank’); pero no pude escribir en la pantalla interactuando con el documento base. En Java tuve que usar comillas dobles driver.get(“about:blank”). Probé esto con Chrome.

Si crees que te ha sido de utilidad este post, nos gustaría que lo compartas con más desarrolladores y nos ayudes a dar difusión a este contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *