Java Selenium-如何记录正在执行的每个步骤?
我试图找到一种方法来记录Java Selenium-如何记录正在执行的每个步骤?,java,selenium,selenium-webdriver,automated-tests,Java,Selenium,Selenium Webdriver,Automated Tests,我试图找到一种方法来记录selenium驱动程序执行的每个操作Log4j是通常建议的解决方案。但是,需要将专用日志语句添加到日志中,如下所示- driver.findElement(By.name("opt1")).sendKeys("km"); log.debug("selecting distance unit"); driver.findElement(By.name("opt2")).sendKeys("10"); log.debug("selecting distance value"
selenium驱动程序执行的每个操作Log4j
是通常建议的解决方案。但是,需要将专用日志语句添加到日志中,如下所示-
driver.findElement(By.name("opt1")).sendKeys("km");
log.debug("selecting distance unit");
driver.findElement(By.name("opt2")).sendKeys("10");
log.debug("selecting distance value");
所以我必须在需要记录的任何地方都有日志语句。是否有跟踪selenium驱动程序的操作并提供一般日志的内容 如果您计划使用selenium server,在执行开始后观察节点终端,它会以非常详细的方式记录每个步骤。我想是用这种技术吧 扩展您正在使用的WebDriver类并重写log函数,在每次函数调用之前和之后都会调用此函数
例如:
import org.openqa.selenium.chrome.ChromeDriver;
导入org.openqa.selenium.remote.SessionId;
公共类MyWebDriver扩展了ChromeDriver{
@凌驾
受保护的无效日志(SessionId SessionId、字符串commandName、对象toLog、When){
System.out.println(“日志:sessionId:+sessionId+”当:“+when+”命令名:“+commandName+”toLog:+toLog”);
log(sessionId、commandName、toLog、when);
}
}
此代码将为您提供如下输出:
LOG: sessionId: 70521460-9ccf-4619-97ea-e7be4717a9b8 when: BEFORE commandName: findElement toLog: [70521460-9ccf-4619-97ea-e7be4717a9b8, findElement {using=xpath, value=//*[@hint='Username']}]
LOG: sessionId: 70521460-9ccf-4619-97ea-e7be4717a9b8 when: AFTER commandName: findElement toLog: [70521460-9ccf-4619-97ea-e7be4717a9b8, findElement {using=xpath, value=//*[@hint='Username']}]
LOG: sessionId: 70521460-9ccf-4619-97ea-e7be4717a9b8 when: BEFORE commandName: findElement toLog: [70521460-9ccf-4619-97ea-e7be4717a9b8, findElement {using=xpath, value=//*[@id='Password']}]
LOG: sessionId: 70521460-9ccf-4619-97ea-e7be4717a9b8 when: AFTER commandName: findElement toLog: [70521460-9ccf-4619-97ea-e7be4717a9b8, findElement {using=xpath, value=//*[@id='Password']}]
Selenium有自己的日志系统,您应该导入LoggingPreferences
,并执行以下操作
LoggingPreferences logs = new LoggingPreferences();
logs.enable(LogType.BROWSER, Level.ALL);
有不同的日志类型
,如性能、服务器、驱动程序等。
您可以为其启用、禁用或设置级别。有关更多信息,请查看下面的答案本机日志正是我想要的。我搜索了很多,但找不到相关的帖子。谢谢。最好使用Testng
或JUnit