如何在Selenium WebDriver中获取本机记录器

是否有可能以某种方式获得Selenium WebDriver使用的记录器?我想捕获发出的所有命令的脚本(例如:打开,等待,单击等)。特别是我正在寻找一个java解决方案,因为我正在将测试导出到junit中。

我在他们的网站上找到了这个代码,但是它没有显示任何标准输出

    DesiredCapabilities caps = DesiredCapabilities.firefox(); 
    LoggingPreferences logs = new LoggingPreferences(); 
    logs.enable(LogType.DRIVER, Level.FINEST); 
    caps.setCapability(CapabilityType.LOGGING_PREFS, logs); 
    driver = new FirefoxDriver(caps);

答案 1

在您正在使用的驱动程序中启用日志记录,选择您感兴趣的日志类型和日志级别(我正在使用FirefoxDriver,启用所有类型的日志并收集所有日志消息)

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);

然后,在运行测试后,您可以收集日志(我只收集DRIVER日志,但您可以对任何类型的日志执行相同的操作)

Logs logs = driver.manage().logs();
LogEntries logEntries = logs.get(LogType.DRIVER);

for (LogEntry logEntry : logEntries) {
    System.out.println(logEntry.getMessage());
}

答案 2

尝试

driver.manage().logs()

您将获得日志接口,其中包含获取日志和日志类型的方法。请参阅日志界面文档


推荐