Como obter um registrador nativo no Selenium WebDriver

É possível obter o registrador de alguma forma que o Selenium WebDriver usa? Eu quero capturar uma transcrição de todos os comandos que foram emitidos (por exemplo: abrir, esperar, clicar, etc). Em particular, estou procurando uma solução Java, já que estou exportando os testes para o junit.

Eu encontrei este código em seu site, no entanto, ele não exibe nada no padrão

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

Ative o registro no driver que você está usando, selecione em quais tipos de registro você está interessado e o nível de registro (estou usando o FirefoxDriver, habilitando todos os tipos de registros e coletando todas as mensagens de registro)

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

Então, depois de executar o teste, você pode coletar os logs (estou coletando apenas os logs do DRIVER, mas você pode fazer o mesmo para qualquer tipo de log)

 Logs logs = driver.manage().logs(); LogEntries logEntries = logs.get(LogType.DRIVER); for (LogEntry logEntry : logEntries) { System.out.println(logEntry.getMessage()); } 

Experimentar

 driver.manage().logs() 

Você receberá a interface de Logs que possui methods para obter logs e tipos de log. Veja os documentos da interface de Logs

Estou usando log4j para log como utils logger é o mais fácil e direto aquele que, que pode ser usado (IMHO).

Dependências do 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  

as importações são as seguintes:

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

uso:

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

e depois é só usá-lo assim:

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

Espero que funcione para voce.

Tente isto –

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

Referência – Testes de unidade selenium em Python – onde está meu arquivo de registro?