How to obtain native logger in Selenium WebDriver

后端 未结 4 1569
悲&欢浪女
悲&欢浪女 2020-12-02 15:49

Is it possible to obtain the logger somehow that Selenium WebDriver uses? I want to capture a transcript of all the commands that were issued (eg: open, wait, click, etc). I

4条回答
  •  清歌不尽
    2020-12-02 16:32

    Enable logging in the driver you're using, select which log types you're interested in and the log level (I'm using FirefoxDriver, enabling all types of logs and collecting all log messages)

    LoggingPreferences logs = new LoggingPreferences();
    logs.enable(LogType.BROWSER, Level.ALL);
    logs.enable(LogType.CLIENT, Level.ALL);
    logs.enable(LogType.DRIVER, Level.ALL);
    logs.enable(LogType.PERFORMANCE, Level.ALL);
    logs.enable(LogType.PROFILER, Level.ALL);
    logs.enable(LogType.SERVER, Level.ALL);
    
    DesiredCapabilities desiredCapabilities = DesiredCapabilities.firefox();
    desiredCapabilities.setCapability(CapabilityType.LOGGING_PREFS, logs);
    
    WebDriver driver = new FirefoxDriver(desiredCapabilities);
    

    Then, after running the test you can collect the logs (I'm only collecting the DRIVER logs, but you can do the same for any type of log)

    Logs logs = driver.manage().logs();
    LogEntries logEntries = logs.get(LogType.DRIVER);
    
    for (LogEntry logEntry : logEntries) {
        System.out.println(logEntry.getMessage());
    }
    

提交回复
热议问题