Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

378
Vistas
How to capture java script errors using Selenium Java WebDriver

I am trying to use Java Selenium WebDriver capture all javascripts errors of a webpage.

Here a sample of my code :

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.logging.LogEntries;
import org.openqa.selenium.logging.LogType;

public class MainExample {
    public static void main(String[] args) {
        System.setProperty("webdriver.gecko.driver", "path_to_driver/geckodriver");
        FirefoxOptions options = new FirefoxOptions();
        WebDriver driver = new FirefoxDriver(options);
        driver.get("https://www.google.com");
        LogEntries entries = driver.manage().logs().get(LogType.BROWSER);
    }
}

As Firefox driver I am using this version : geckodriver-v0.30.0-linux64.tar.gz

Here is my Selenium version :

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.1.1</version>
</dependency>

My problem is that when running the previous code I get the following exception :

Driver info: driver.version: RemoteWebDriver at org.openqa.selenium.json.JsonInput.peek(JsonInput.java:122) at org.openqa.selenium.json.JsonTypeCoercer.lambda$null$6(JsonTypeCoercer.java:140) at org.openqa.selenium.json.JsonTypeCoercer.coerce(JsonTypeCoercer.java:126) at org.openqa.selenium.json.Json.toType(Json.java:69) at org.openqa.selenium.json.Json.toType(Json.java:55) at org.openqa.selenium.json.Json.toType(Json.java:50) at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:87) at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552) at org.openqa.selenium.remote.RemoteExecuteMethod.execute(RemoteExecuteMethod.java:35) at org.openqa.selenium.remote.RemoteLogs.getRemoteEntries(RemoteLogs.java:81) at org.openqa.selenium.remote.RemoteLogs.get(RemoteLogs.java:77) at MainExample.main(MainExample.java:17)

If I run the code on a custom page that have some Java script error I do see them in the logs :

JavaScript error: http://localhost/js/app.js?version=625f9736, line 1: TypeError: e is undefined

but I am not able to retrieve them using

driver.manage().logs().get(LogType.BROWSER);

I have tried the different codes of this related subject but I am each time getting this error.

I also have tried to downgrade my selenium version to 3.141.59 but I am still getting the same error.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Using WebDriver log endopints (not supported)

There is no get-logs endpoint defined by W3C WebDriver yet..

https://www.w3.org/TR/webdriver/#endpoints

And this still opened:

https://github.com/w3c/webdriver/issues/406

So, unfortunately, driver.manage().logs() is not implemented by Firefox.

From geckodriver team:

This isn't in the W3C spec at this time, so we are delaying support until the behaviour is well specified. But your request is noted.

See

  • (2016) https://bugzilla.mozilla.org/show_bug.cgi?id=1453962

  • (2016) https://github.com/mozilla/geckodriver/issues/284

  • (2018) https://github.com/mozilla/geckodriver/issues/1292


Using DevTools (seems to work)

I was able to see the console output with selenium-4.1.1 and devtools.v85

package org.example.getlogs

import org.openqa.selenium.WebDriver
import org.openqa.selenium.devtools.DevTools
import org.openqa.selenium.devtools.v85.log.Log
import org.openqa.selenium.firefox.FirefoxDriver
import org.openqa.selenium.firefox.FirefoxOptions

class GetLogsTest {

    public static void main(String[] args) {
        FirefoxOptions options = new FirefoxOptions();
        WebDriver driver = new FirefoxDriver(options);
        DevTools devTools = driver.getDevTools();
        devTools.createSession();
        devTools.send(Log.enable());
        devTools.addListener(Log.entryAdded(),
                logEntry -> {
                    System.out.println("" + logEntry.getLevel()+ ": " + logEntry.getText());
                });
        driver.get("https://stackoverflow.com/questions/70787924/how-to-capture-java-script-errors-using-selenium-java-webdriver");
        driver.quit();
    }
}
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda