Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Selenium-如何记录正在执行的每个步骤?_Java_Selenium_Selenium Webdriver_Automated Tests - Fatal编程技术网

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