Selenium webdriver genera archivos temporales que llenan mi disco duro

En esta ocasión quiero compartirles algo que no preví al usar selenium webdriver con nodejs. Uso esta combinación para monitorear un tag de audio dentro de un sitio web interno.

Ejecuto mi aplicación de node de la forma típica:

node miapp.js

Cabe señalar que la app la ejecuto con el programador de tareas de windows para que se ejecute cada cierto tiempo.

El código node es algo así:

const { Builder, By, Key, until } = require('selenium-webdriver');

(async function example() {

    // Crea una nueva instancia del navegador

    let driver = await new Builder().forBrowser('chrome').build();

    try {

        // Navega a la página deseada

        await driver.get('http://localhost/verifica.html');

        await driver.findElement(By.css("html")).click();

    await driver.sleep(120000);

    } finally {

        // Cierra el navegador

        await driver.quit();

    }

})();

Todo funciona como se espera, sin embargo empecé a notar al paso de los días que el espacio en disco duro se iba terminando, sospeché inmediatamente de selenium webdriver, busqué en google y solo pude encontrar esto: [1]

Por lo que confirmé mi sospecha, cada vez que se ejecuta el comando node para iniciar la app, selenium crea un directorio scoped_dir random que contiene la configuración de la instancia del navegador [2] y con un peso de alrededor de 12 mb. En mi caso, Windows lo genera en c:\Windows\SystemTemp como se puede apreciar:


Borrando estas carpetas no me afectó el funcionamiento de mi programa en las ejecuciones posteriores y sin embargo liberé gran cantidad de espacio en disco duro.

Para poder entrar a la carpeta c:\Windows\SystemTemp tuve que ejecutar un comando en powershell para tomar control sobre el directorio ya que es un directorio de sistema.

Takeown /F "C:\Windows\SystemTemp" /A /R


Por un momento me volví loco buscando donde se generaban estas carpetas, ya que, windows no me contabilizaba el peso correcto de la carpeta c:\windows ya que supongo que por ser c:\windows\SystemTemp una especie de carpeta de sistema oculta y protegida la ignoraba, genial windows!.

Referencias:

[1] [🐛 Bug]: Chromedriver 109 creates scoped_dir random directories in C:\Program Files (x86) · Issue #11555 · SeleniumHQ/selenium · GitHub

[2] Now temporary folder created in C:\Program Files when using Selenium to automate Edge - Microsoft Q&A

Artículo Anterior Artículo Siguiente