Come ottenere il logger nativo in Selenium WebDriver

È ansible ottenere il logger in qualche modo che Selenium WebDriver utilizza? Voglio catturare una trascrizione di tutti i comandi che sono stati emessi (ad esempio: apri, attendi, fai clic, ecc.). In particolare, sto cercando una soluzione java, poiché sto esportando i test in junit.

Ho trovato questo codice sul loro sito Web, tuttavia non visualizza nulla sullo standard

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

Abilita la registrazione nel driver che stai utilizzando, seleziona i tipi di registro che ti interessano e il livello di registro (sto usando FirefoxDriver, abilitando tutti i tipi di registri e raccogliendo tutti i messaggi di 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); 

Quindi, dopo aver eseguito il test, puoi raccogliere i log (sto raccogliendo solo i log del DRIVER, ma puoi fare lo stesso per qualsiasi tipo di registro)

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

Provare

 driver.manage().logs() 

Avrai l’interfaccia Logs che ha metodi per ottenere log e tipi di log. Vedi Documenti di interfaccia dei registri

Sto usando log4j per la registrazione in quanto il logger dei programmi di utilità è il più semplice e diretto che può essere usato (IMHO).

Dipendenze 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  

le importazioni sono le seguenti:

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

utilizzo:

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

e quindi basta usarlo come tale:

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

Spero che questo funzioni per te.

Prova questo –

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

Riferimento – Test delle unità di selenium in Python – dove si trova il mio file di registro?