Logs logs = driver.manage().logs(); LogEntries logEntries = logs.get(LogType.DRIVER); for (LogEntry logEntry : logEntries) { System.out.println(logEntry.getMessage()); }
/** * * @param driver the subject web driver that we want to get console log * @return List of log entries. */ public static List<String> analyzeLog(WebDriver driver) { List<String> log = new ArrayList<>(); Set<String> logTypes = driver.manage().logs().getAvailableLogTypes(); if (logTypes.contains(LogType.BROWSER)) { LogEntries logEntries = driver.manage().logs().get(LogType.BROWSER); for (LogEntry entry : logEntries) { log.add(entry.getLevel() + " " + entry.getMessage().replaceAll("'", "")); } } else { log.add("This browser does not support getting console log."); } return log; }
@Override public Set<String> getAvailableLogTypes() { ensureWebDriver(); return delegate.manage().logs().getAvailableLogTypes(); } }
for (Field webdriverField : AnnotationUtils.getFieldsAnnotatedWith(testObject.getClass(), TestWebDriver.class)) { WebDriver webdriver = ReflectionUtils.getFieldValue(testObject, webdriverField); for (String type : webdriver.manage().logs().getAvailableLogTypes()) { try { List<LogEntry> entries = webdriver.manage().logs().get(type).getAll(); System.out.println(entries.size() + " " + type + " log entries found"); for (LogEntry entry : entries) {
@Override public void beforeDriverQuit(BeforeDriverQuitEvent event) { Logs logs = seb.getDriver().manage().logs(); logs.getAvailableLogTypes().forEach(type -> storeLogs(logs, type)); }
private List<LogEntry> getLogEntries(String logType, Level logLevel) { try { return driver.getWebDriver().manage().logs().get(logType).filter(logLevel); } catch (UnsupportedOperationException ignore) { return emptyList(); } }
@Test public void captureLogcat() { // inspect available log types Set<String> logtypes = driver.manage().logs().getAvailableLogTypes(); System.out.println("suported log types: " + logtypes.toString()); // [logcat, bugreport, server, client] // print first and last 10 lines of logs LogEntries logs = driver.manage().logs().get("logcat"); System.out.println("First and last ten lines of log: "); StreamSupport.stream(logs.spliterator(), false).limit(10).forEach(System.out::println); System.out.println("..."); StreamSupport.stream(logs.spliterator(), false).skip(logs.getAll().size() - 10).forEach(System.out::println); // wait for more logs try { Thread.sleep(5000); } catch (Exception ign) {} // pause to allow visual verification // demonstrate that each time get logs, we only get new logs // which were generated since the last time we got logs LogEntries secondCallToLogs = driver.manage().logs().get("logcat"); System.out.println("\nFirst ten lines of next log call: "); StreamSupport.stream(secondCallToLogs.spliterator(), false).limit(10).forEach(System.out::println); Assert.assertNotEquals(logs.iterator().next(), secondCallToLogs.iterator().next()); } }
public void destroy() throws Exception { if(chromePrefLogDir != null && chromePrefLogDir.isDirectory()) { Set<String> available = driver.manage().logs().getAvailableLogTypes(); for (String type : available) { printLog(type); } } driver.close(); driver.quit(); }
@Test public void testSimpleSamlLoginWithAddShadowUserOnLoginFalse() throws Exception { // Deleting marissa@test.org from simplesamlphp because previous SAML authentications automatically // create a UAA user with the email address as the username. deleteUser(SAML_ORIGIN, testAccounts.getEmail()); IdentityProvider provider = IntegrationTestUtils.createIdentityProvider(SAML_ORIGIN, false, baseUrl, serverRunning); String clientId = "app-addnew-false"+ new RandomValueStringGenerator().generate(); String redirectUri = "http://nosuchhostname:0/nosuchendpoint"; BaseClientDetails client = createClientAndSpecifyProvider(clientId, provider, redirectUri); String firstUrl = "/oauth/authorize?" + "client_id=" + clientId + "&response_type=code" + "&redirect_uri=" + URLEncoder.encode(redirectUri, "UTF-8"); webDriver.get(baseUrl + firstUrl); webDriver.findElement(By.xpath("//h2[contains(text(), 'Enter your username and password')]")); webDriver.findElement(By.name("username")).clear(); webDriver.findElement(By.name("username")).sendKeys(testAccounts.getUserName()); webDriver.findElement(By.name("password")).sendKeys(testAccounts.getPassword()); webDriver.findElement(By.xpath("//input[@value='Login']")).click(); // We need to verify the last request URL through the performance log because the redirect // URI does not exist. When the webDriver follows the non-existent redirect URI it receives a // connection refused error so webDriver.getCurrentURL() will remain as the SAML IdP URL. List<LogEntry> logEntries = webDriver.manage().logs().get(LogType.PERFORMANCE).getAll(); List<String> logMessages = logEntries.stream().map(logEntry -> logEntry.getMessage()).collect(Collectors.toList()); assertThat(logMessages, hasItem(containsString(redirectUri + "?error=access_denied&error_description=SAML+user+does+not+exist.+You+can+correct+this+by+creating+a+shadow+user+for+the+SAML+user."))); }
for (String logType: driver.manage().logs().getAvailableLogTypes()) { for (LogEntry line: driver.manage().logs().get(logType).getAll()) { writer.println(line.toString());
@Override public Set<JsErrorLog> getJSErrorLogs() { LogEntries logEntries = webDriver.manage().logs().get(LogType.BROWSER); return StreamSupport.stream(logEntries.spliterator(), false) .filter(ONLY_SEVERE_ERRORS) .map(LOG_ENTRY_TO_JS_ERROR) .collect(Collectors.toCollection(() -> new TreeSet<>(Ordering.natural()))); }
@Override public Set<JsErrorLog> getJSErrorLogs() { LogEntries logEntries = webDriver.manage().logs().get(LogType.BROWSER); return StreamSupport.stream(logEntries.spliterator(), false) .filter(ONLY_SEVERE_ERRORS) .map(LOG_ENTRY_TO_JS_ERROR) .collect(Collectors.toCollection(() -> new TreeSet<>(Ordering.natural()))); }
void printLog(String type) throws IOException { File logFile = new File(chromePrefLogDir, type + ".json.log.gz"); PrintWriter out = null; try { for (LogEntry entry : driver.manage().logs().get(type)) { if (out == null) { out = new PrintWriter(new GZIPOutputStream(new FileOutputStream(logFile))); } out.println(entry.getMessage()); } } finally { IOUtils.closeQuietly(out); } } }
Settings settings = Settings.builder() .logJavascript(true) .build(); JBrowserDriver jBrowserDriver = new JBrowserDriver(settings); jBrowserDriver.get("http://example.com"); Logs logs = jBrowserDriver.manage().logs(); LogEntries logEntries = logs.get("javascript"); logEntries.forEach(System.out::println);
/** * Reads performance logs from web driver. * * @return all types of performance logs */ private LogEntries readPerformanceLogs() { return seleniumWebDriver.manage().logs().get(PERFORMANCE); }
default List<String> console() { return driver().manage().logs().get("browser").getAll().stream() .map(log -> log.getMessage() .replace(" (undefined:undefined)", "") .replace(" (:)", "") .replace("\n anonymous (:1)", "")) .collect(toList()); }
@Override public LogEntries get(String logType) { ensureWebDriver(); return delegate.manage().logs().get(logType); }
default List<String> console() { return driver().manage().logs().get("browser").getAll().stream() .map(log -> log.getMessage() .replace(" (undefined:undefined)", "") .replace(" (:)", "") .replace("\n anonymous (:1)", "")) .collect(toList()); }
/** * Reads logs of browser from web driver. * * @return log messages from browser console */ private LogEntries readBrowserLogs() { return seleniumWebDriver.manage().logs().get(BROWSER); }
public void printBrowserLogs() { if (logger.isTraceEnabled()){ final Logs logs = webDriver.manage().logs(); if (logs != null) { final LogEntries logEntries = logs.get(LogType.BROWSER); final StringBuilder buf = new StringBuilder(); buf.append("BROWSER LOGS:\n\n"); for (final LogEntry entry : logEntries) { buf.append(new Date(entry.getTimestamp()) + " " + entry.getLevel() + " " + entry.getMessage() + "\n"); } logger.trace(buf.toString()); } } } }