@Override public Set<String> getAvailableLogTypes() { ensureWebDriver(); return delegate.manage().logs().getAvailableLogTypes(); } }
@Override public void beforeDriverQuit(BeforeDriverQuitEvent event) { Logs logs = seb.getDriver().manage().logs(); logs.getAvailableLogTypes().forEach(type -> storeLogs(logs, type)); }
/** * * @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; }
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(); }
for (Field webdriverField : AnnotationUtils.getFieldsAnnotatedWith(testObject.getClass(), TestWebDriver.class)) { WebDriver webdriver = ReflectionUtils.getFieldValue(testObject, webdriverField); for (String type : webdriver.manage().logs().getAvailableLogTypes()) { try {
@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()); } }
for (String logType: driver.manage().logs().getAvailableLogTypes()) {