Java PhantomJSDriver disable all logs in console

2020-08-10 07:59发布

问题:

I'm developing a small console app using Selenium and I need to turn off all logs from it.

I have tried phantomJSDriver.setLogLevel(Level.OFF); but it does not work. I need help.

How do I disable all logs in console application that is using Selenium and Phantomjs (GhostDriver)?

回答1:

PhantomJSDriverService service = new PhantomJSDriverService.Builder()
        .usingPhantomJSExecutable(new File(VariableClass.phantomjs_file_path))
        .withLogFile(null)
        .build();


回答2:

This one works for me.

DesiredCapabilities dcap = new DesiredCapabilities();
String[] phantomArgs = new  String[] {
    "--webdriver-loglevel=NONE"
};
dcap.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, phantomArgs);
PhantomJSDriver phantomDriver = new PhantomJSDriver(dcap);


回答3:

Looking at the source files of org.openqa.selenium.phantomjs.PhanomJSDriverService while debugging, I discovered that it's actually ignoring documented log levels for ghostdriver itself. Doing this disables the bulk of ghostdriver output:

Logger.getLogger(PhantomJSDriverService.class.getName()).setLevel(Level.OFF);

Seems that GhostDriver should be be updated to not log when

phantomJSCaps.setCapability(PhantomJSDriverService.PHANTOMJS_GHOSTDRIVER_CLI_ARG‌​S, "--webdriver-loglevel=NONE");  

is used.