如何在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 – 我的日志文件在哪里?