Подтвердить что ты не робот

Как получить собственный регистратор в Selenium WebDriver

Возможно ли получить регистратор каким-то образом, что использует Selenium WebDriver? Я хочу записать транскрипт всех команд, которые были выпущены (например: open, wait, click и т.д.). В частности, я ищу 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);
4b9b3361

Ответ 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());
}

Ответ 3

Я использую log4j для ведения журнала, так как utils logger - самый простой и простой, который можно использовать (IMHO).

Зависимости POM:

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

импорт:

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

Надеюсь, это сработает для вас.