首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Selenium WebDriver中获取本机记录器

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

Stack Overflow用户
提问于 2012-11-03 08:27:19
回答 4查看 28K关注 0票数 21

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

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

代码语言:javascript
复制
    DesiredCapabilities caps = DesiredCapabilities.firefox(); 
    LoggingPreferences logs = new LoggingPreferences(); 
    logs.enable(LogType.DRIVER, Level.FINEST); 
    caps.setCapability(CapabilityType.LOGGING_PREFS, logs); 
    driver = new FirefoxDriver(caps);
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-05-07 16:58:26

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

代码语言:javascript
复制
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);

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

代码语言:javascript
复制
Logs logs = driver.manage().logs();
LogEntries logEntries = logs.get(LogType.DRIVER);

for (LogEntry logEntry : logEntries) {
    System.out.println(logEntry.getMessage());
}
票数 36
EN

Stack Overflow用户

发布于 2013-09-27 04:36:56

试一试

代码语言:javascript
复制
driver.manage().logs()

您将获得Logs界面,其中包含获取日志和日志类型的方法。请参阅Logs interface docs

票数 3
EN

Stack Overflow用户

发布于 2012-11-04 23:44:37

我使用log4j进行日志记录,因为utils logger是可以使用的最简单和直接的工具(IMHO)。

POM依赖关系:

代码语言:javascript
复制
<dependency>
          <groupId> org.apache.cassandra</groupId>
          <artifactId>cassandra-all</artifactId>
          <version>0.8.1</version>
      </dependency>

      <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
          <version>1.6.6</version>
      </dependency>
      <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>jcl-over-slf4j</artifactId>
          <version>1.6.6</version>
          <scope>runtime</scope>
      </dependency>
      <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>jul-to-slf4j</artifactId>
          <version>1.6.6</version>
          <scope>runtime</scope>
      </dependency>
      <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>log4j-over-slf4j</artifactId>
          <version>1.6.6</version>
          <scope>runtime</scope>
      </dependency>

导入如下:

代码语言:javascript
复制
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

用法:

代码语言:javascript
复制
private static Logger log = LoggerFactory.getLogger(classname.class);

然后就像这样使用它:

代码语言:javascript
复制
logger.info ("butonCLick");
driver.findElement(By.id("blablabla")).click();

希望这对你有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13204820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档