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.