【问题标题】:How to create log file history in selenium webdriver using java如何使用 java 在 selenium webdriver 中创建日志文件历史记录
【发布时间】:2026-02-20 08:00:01
【问题描述】:

目前正在开发 selenium webdriver。我创建了一个日志文件,并将日志信息存储在 logfile.log 中。当我开始运行我的测试用例时,会捕获日志信息,但可以看到整个历史记录。我想清除日志文件,或者在开始执行测试用例之前需要清除它。

示例日志信息:

2013-10-01 09:18:06,655 INFO  [TEST] Initializing Selenium... 
2013-10-01 09:18:06,686 INFO  [TEST] Selenium instance started 
2013-10-01 09:18:11,905 INFO  [TEST] ______________________________________________________________ 
2013-10-01 09:18:11,905 INFO  [TEST] Initializing Selenium... 
2013-10-01 09:18:11,921 INFO  [TEST] Selenium instance started 
2013-10-01 09:18:11,921 INFO  [TEST] Accessing Stored uid,pwd from the stored text file 
2013-10-01 09:18:11,921 INFO  [TEST] Retrieved uid pwd from the text file 
2013-10-01 09:18:12,858 INFO  [TEST] Sign in to the OneReports website 
2013-10-01 09:18:12,874 INFO  [TEST] Enter Username 
2013-10-01 09:18:13,077 INFO  [TEST] Enter Password 
2013-10-01 09:18:14,155 INFO  [TEST] Submitting login details 
2013-10-01 09:18:33,139 INFO  [TEST] Stopping Selenium... 
2013-10-01 09:18:33,139 INFO  [TEST]  ______________________________________________________________ 

【问题讨论】:

  • 您使用什么 API 进行日志记录???最好的做法是创建带有时间戳的日志文件。如果您每天都在运行,那么日期就足够了,否则如果您在一天内运行多次,则完成时间戳。
  • Anuragh 的建议对于任何未来的参考都是一个更好的解决方案。否则,您可以编写简单的代码在执行开始之前删除文件。

标签: java selenium selenium-webdriver


【解决方案1】:

希望对你有帮助:

Automation Log for Selenium

步骤 1- 下载 log4j jar 文件

点击链接下载http://mirrors.ibiblio.org/pub/mirrors/maven/log4j/jars/log4j-1.2.15.jar

第 2 步 - 将 log4j 添加到您当前的项目中

选择您的项目>右键单击>单击构建路径>单击配置构建路径>转到库部分>添加外部jar文件>选择log4j>单击保存

步骤 3- 打开记事本并复制以下代码并将文件保存为 log4j.properties。这个文件应该放在 src 目录下,这应该创建一个“默认包”。

// Here we have defined root logger
log4j.rootLogger=INFO,CONSOLE,R,HTML,TTCC

// Here we define the appender
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.TTCC=org.apache.log4j.RollingFileAppender
log4j.appender.HTML=org.apache.log4j.FileAppender

// Here we define log file location
log4j.appender.R.File=./log/testlog.log
log4j.appender.TTCC.File=./log/testlog1.log
log4j.appender.HTML.File=./log/application.html

// Here we define the layout and pattern
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern= %5p [%t] (%F:%L)- %m%n
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d - %c -%p - %m%n
log4j.appender.TTCC.layout=org.apache.log4j.TTCCLayout
log4j.appender.TTCC.layout.DateFormat=ISO8601
log4j.appender.HTML.layout=org.apache.log4j.HTMLLayout
log4j.appender.HTML.layout.Title=Application log
log4j.appender.HTML.layout.LocationInfo=true

第 4 步 - 编写测试用例

import java.util.concurrent.TimeUnit;
import orgenter code here.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;


public class Google {
   public static void main(String[] args) {

    // Here we need to create logger instance so we need to pass Class name for 
    //which  we want to create log file in my case Google is classname
         Logger logger=Logger.getLogger("Google");

      // configure log4j properties file
       PropertyConfigurator.configure("Log4j.properties");
         // Open browser
        WebDriver driver = new FirefoxDriver();
        logger.info("Browser Opened");

        // Set implicit wait
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        logger.info("Implicit wait given");

        // Load application
     driver.get("https://www.google.co.in/");
     logger.info("Url opened");


       // type Selenium
       driver.findElement(By.name("q")).sendKeys("Selenium");
        logger.info("keyword type");           
    }
}

第 5 步 - 执行您的测试用例并验证输出和日志文件。此日志将在带有“日志”标签的项目文件夹中创建

【讨论】:

  • 请在此处提供此问题的答案并使用链接作为参考。如果链接不可用,您的回答将毫无用处
  • 它被称为Log4j框架,遵循如上所述的生命周期。
【解决方案2】:

您可以在代码开头清除日志文件:

PrintWriter writer = new PrintWriter(logfile);
writer.print("");
writer.close();

【讨论】: