我想在Java Selenium测试中将每个WebDriver设置Logggings设置为静默。 例如,Selenium将在设置Edge驱动程序时记录以下内容:
[16:21:10.158]-收听http://127.0.0.1:42136/
[16:21:10.158]-收听http://[::1]:42136/
2019年3月5日下午4:21:11 org.openqa.selenium.remote.ProtocolHandshake createSession INFO:检测到的方言:W3C
“设置”是指:
WebDriverManager.getInstance(DriverManagerType.EDGE).setup();
WebDriver driver= new EdgeDriver();
我发现我可以在Chrome的主菜单上的任何位置使用此参数来完成此操作:
System.setProperty("webdriver.chrome.silentLogging", "true");
但是Internet上没有有关其余WebDriver的信息,例如: 边缘, IE浏览器, 火狐 歌剧,野生动物园 等
我正在寻找其中的所有(最好是全部)吗?
答案 0 :(得分:0)
我无法找到适用于任何其他驱动程序的设置,但是另一种解决主要问题的方法是完全禁用“设置”时间内的日志:
System.setOut(
new PrintStream(new OutputStream() {
@Override
public void close() {}
@Override
public void flush() {}
@Override
public void write(byte[] b) {}
@Override
public void write(byte[] b, int off, int len) {}
@Override
public void write(int b) {}
}));
System.setErr(
new PrintStream(new OutputStream() {
@Override
public void close() {}
@Override
public void flush() {}
@Override
public void write(byte[] b) {}
@Override
public void write(byte[] b, int off, int len) {}
@Override
public void write(int b) {}
}));
,然后立即将其还原。
此方法的问题在于它可以隐藏异常日志 导致其他与控制台日志时间相关的问题 关闭。