如何在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); 

启用您正在使用的驱动程序中的日志记录,选择您感兴趣的日志类型和日志级别(我正在使用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()); } 

尝试

 driver.manage().logs() 

您将获得具有获取日志和日志类型的方法的Logs接口。 请参阅日志界面文档

我正在使用log4j进行日志记录,因为utils logger是最容易和最直接的,可以使用(恕我直言)。

POM依赖:

   org.apache.cassandra cassandra-all 0.8.1   org.slf4j slf4j-api 1.6.6   org.slf4j jcl-over-slf4j 1.6.6 runtime   org.slf4j jul-to-slf4j 1.6.6 runtime   org.slf4j log4j-over-slf4j 1.6.6 runtime  

import如下:

 import org.slf4j.Logger; import org.slf4j.LoggerFactory; 

用法:

 private static Logger log = LoggerFactory.getLogger(classname.class); 

然后就这样使用它:

 logger.info ("butonCLick"); driver.findElement(By.id("blablabla")).click(); 

希望这对你有用。

尝试这个 –

 import logging logging.basicConfig(filename = log_filename, level = logging.DEBUG) 

参考 – Python中的Seleniumunit testing – 我的日志文件在哪里?