From 6625d28d6eead6c016685339433f522b21185981 Mon Sep 17 00:00:00 2001 From: labkey-tchad Date: Fri, 29 Jul 2022 12:06:25 -0700 Subject: [PATCH] Collect browser logs --- src/org/labkey/test/TestProperties.java | 5 +++ src/org/labkey/test/WebDriverWrapper.java | 40 +++++++++++++++++++++-- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/src/org/labkey/test/TestProperties.java b/src/org/labkey/test/TestProperties.java index 7e3e6149589..1c78e177116 100644 --- a/src/org/labkey/test/TestProperties.java +++ b/src/org/labkey/test/TestProperties.java @@ -192,6 +192,11 @@ public static boolean isDebugLoggingEnabled() return "true".equals(System.getProperty("webtest.logging.debug")); } + public static boolean isConsoleLogEnabled() + { + return "true".equals(System.getProperty("webtest.devtools.console.log")); + } + public static boolean isPrimaryUserAppAdmin() { return "true".equals(System.getProperty("webtest.primary.app.admin")); diff --git a/src/org/labkey/test/WebDriverWrapper.java b/src/org/labkey/test/WebDriverWrapper.java index 5f7aa98aa77..24769e2c172 100644 --- a/src/org/labkey/test/WebDriverWrapper.java +++ b/src/org/labkey/test/WebDriverWrapper.java @@ -23,6 +23,8 @@ import org.apache.commons.lang3.mutable.MutableInt; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.LogManager; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -80,6 +82,11 @@ import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeDriverService; import org.openqa.selenium.chrome.ChromeOptions; +import org.openqa.selenium.devtools.DevTools; +import org.openqa.selenium.devtools.HasDevTools; +import org.openqa.selenium.devtools.v85.log.Log; +import org.openqa.selenium.devtools.v85.log.model.LogEntry; +import org.openqa.selenium.devtools.v85.runtime.model.ConsoleAPICalled; import org.openqa.selenium.firefox.FirefoxBinary; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxDriverLogLevel; @@ -89,6 +96,7 @@ import org.openqa.selenium.firefox.GeckoDriverService; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.interactions.Actions; +import org.openqa.selenium.remote.Augmenter; import org.openqa.selenium.remote.RemoteWebDriver; import org.openqa.selenium.remote.service.DriverService; import org.openqa.selenium.support.ui.ExpectedConditions; @@ -131,11 +139,11 @@ import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.function.Supplier; -import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; +import org.openqa.selenium.devtools.v85.runtime.Runtime; import static org.apache.commons.lang3.StringUtils.trimToNull; import static org.junit.Assert.assertEquals; @@ -171,7 +179,7 @@ public abstract class WebDriverWrapper implements WrapsDriver { // Eliminate noise from org.openqa.selenium.remote.ProtocolHandshake and org.openqa.selenium.interactions.Actions if (!isWebDriverLoggingEnabled()) - Logger.getLogger("org.openqa.selenium").setLevel(Level.WARNING); + Logger.getLogger("org.openqa.selenium").setLevel(java.util.logging.Level.WARNING); } public WebDriverWrapper() @@ -393,6 +401,12 @@ protected Pair createNewWebDriver(@NotNull Pair LOG_ENTRY_LEVELS = Map.of( + LogEntry.Level.VERBOSE, Level.DEBUG, + LogEntry.Level.INFO, Level.INFO, + LogEntry.Level.WARNING, Level.WARN, + LogEntry.Level.ERROR, Level.ERROR + ); + + static final org.apache.logging.log4j.Logger LOGGER = LogManager.getLogger(BrowserConsoleLog.class); + + static void log(LogEntry logEntry) + { + LOGGER.log(LOG_ENTRY_LEVELS.get(logEntry.getLevel()), logEntry.getText()); + } +}