From c166199f301aca1059e8eff311c8e155a1f5f4b6 Mon Sep 17 00:00:00 2001 From: Delta456 Date: Mon, 25 Aug 2025 20:08:54 +0530 Subject: [PATCH] [java] use `--enable-chrome-logs` to redirect browser I/O streams --- .../openqa/selenium/chrome/ChromeDriverService.java | 3 ++- .../selenium/chrome/ChromeDriverServiceTest.java | 13 ++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/java/src/org/openqa/selenium/chrome/ChromeDriverService.java b/java/src/org/openqa/selenium/chrome/ChromeDriverService.java index 5ab2d37844b73..7162fd5f23630 100644 --- a/java/src/org/openqa/selenium/chrome/ChromeDriverService.java +++ b/java/src/org/openqa/selenium/chrome/ChromeDriverService.java @@ -292,7 +292,6 @@ protected void loadSystemProperties() { protected List createArgs() { List args = new ArrayList<>(); args.add(String.format(Locale.ROOT, "--port=%d", getPort())); - // Readable timestamp and append logs only work if log path is specified in args // Cannot use logOutput because goog:loggingPrefs requires --log-path get sent if (getLogFile() != null) { @@ -316,6 +315,8 @@ protected List createArgs() { if (Boolean.TRUE.equals(disableBuildCheck)) { args.add("--disable-build-check"); } + // Suppress or redirect browser I/O Streams + args.add("--enable-chrome-logs"); return unmodifiableList(args); } diff --git a/java/test/org/openqa/selenium/chrome/ChromeDriverServiceTest.java b/java/test/org/openqa/selenium/chrome/ChromeDriverServiceTest.java index 8e58ba0957db4..ed9a67178b7d2 100644 --- a/java/test/org/openqa/selenium/chrome/ChromeDriverServiceTest.java +++ b/java/test/org/openqa/selenium/chrome/ChromeDriverServiceTest.java @@ -61,19 +61,21 @@ void testScoring() { void logLevelLastWins() { ChromeDriverService.Builder builderMock = spy(ChromeDriverService.Builder.class); - List silentLast = Arrays.asList("--port=1", "--log-level=OFF"); + List silentLast = Arrays.asList("--port=1", "--log-level=OFF", "--enable-chrome-logs"); builderMock.withLogLevel(ChromiumDriverLogLevel.ALL).usingPort(1).withSilent(true).build(); verify(builderMock).createDriverService(any(), anyInt(), any(), eq(silentLast), any()); - List silentFirst = Arrays.asList("--port=1", "--log-level=DEBUG"); + List silentFirst = + Arrays.asList("--port=1", "--log-level=DEBUG", "--enable-chrome-logs"); builderMock.withSilent(true).withLogLevel(ChromiumDriverLogLevel.DEBUG).usingPort(1).build(); verify(builderMock).createDriverService(any(), anyInt(), any(), eq(silentFirst), any()); - List verboseLast = Arrays.asList("--port=1", "--log-level=ALL"); + List verboseLast = Arrays.asList("--port=1", "--log-level=ALL", "--enable-chrome-logs"); builderMock.withLogLevel(ChromiumDriverLogLevel.OFF).usingPort(1).withVerbose(true).build(); verify(builderMock).createDriverService(any(), anyInt(), any(), eq(verboseLast), any()); - List verboseFirst = Arrays.asList("--port=1", "--log-level=INFO"); + List verboseFirst = + Arrays.asList("--port=1", "--log-level=INFO", "--enable-chrome-logs"); builderMock.withVerbose(true).withLogLevel(ChromiumDriverLogLevel.INFO).usingPort(1).build(); verify(builderMock).createDriverService(any(), anyInt(), any(), eq(verboseFirst), any()); } @@ -83,7 +85,8 @@ void logLevelLastWins() { void ignoreFalseLogging() { ChromeDriverService.Builder builderMock = spy(ChromeDriverService.Builder.class); - List falseSilent = Arrays.asList("--port=1", "--log-level=DEBUG"); + List falseSilent = + Arrays.asList("--port=1", "--log-level=DEBUG", "--enable-chrome-logs"); builderMock.withLogLevel(ChromiumDriverLogLevel.DEBUG).usingPort(1).withSilent(false).build(); verify(builderMock).createDriverService(any(), anyInt(), any(), eq(falseSilent), any()); }