silence登录Webdrivers?

时间:2019-03-05 21:27:01

标签: java selenium selenium-webdriver

我想在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浏览器, 火狐 歌剧,野生动物园 等

我正在寻找其中的所有(最好是全部)吗?

1 个答案:

答案 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) {}

    }));

,然后立即将其还原。

  

此方法的问题在于它可以隐藏异常日志   导致其他与控制台日志时间相关的问题   关闭。