Passing options to chrome driver selenium

后端 未结 4 1742
北恋
北恋 2020-12-31 12:56

I am trying to disable the output to the console for chrome. If I pass the --start-maximized option it works fine. I may have the wrong command?

DesiredCapab         


        
相关标签:
4条回答
  • 2020-12-31 13:02

    Hinted by this Chromedriver ticket (about the silent option), I looked in the source of ChromeDriverService.java, and found a reference to "webdriver.chrome.logfile".

    After adding -Dwebdriver.chrome.logfile="/dev/null" to my java command, the logs became readable again: The usless ChromeDriver logs were gone, while theSystem.out.println calls and exceptions are still shown in the console.

    I start java with the following parameters (Linux / Mac):

    DIR=path/to/dir/containing/selenium/and/stuff
    cd "$DIR" && java -cp "$DIR\
    :$DIR/output\
    :$DIR/bin/selenium-server-standalone-2.33.0.jar" \
    -Dwebdriver.chrome.driver="$DIR/bin/chromedriver" \
    -Dwebdriver.chrome.args="--disable-logging" \
    -Dwebdriver.chrome.logfile="/dev/null" \
    AllTests
    

    If you're on Windows:

    set DIR=path\to\dir\containing\selenium\and\stuff
    cd "%DIR%" && java -cp "%DIR%;%DIR%\output;%DIR%\bin\selenium-server-standalone-2.33.0.jar" ^
    -Dwebdriver.chrome.driver="%DIR%\bin\chromedriver.exe" ^
    -Dwebdriver.chrome.args="--disable-logging" ^
    -Dwebdriver.chrome.logfile=NUL ^
    AllTests
    

    Explanation for the composition of my classpath (-cp): My tests are located in a directory at "$DIR/output". The Selenium jar file is placed in "$DIR/bin/selenium-server-standalone-2.33.0.jar". "AllTests" is the name of my class containing public static void main(String[] args) - this launches my tests.

    The other parameters are self-explanatory, adjust it to your needs. For convenience (used in a shell/batch script), I've declared the common directory in a variable DIR.

    0 讨论(0)
  • 2020-12-31 13:09

    Try "--disable-logging" instead.

    DesiredCapabilities capabilities = DesiredCapabilities.chrome();
    capabilities.setCapability("chrome.switches", Arrays.asList("--disable-logging"));
    chrome = new ChromeDriver(_chromeservice,capabilities);
    
    0 讨论(0)
  • 2020-12-31 13:09

    As of Selenium 3 at least, you can use ChromeDriverService and its inner class Builder to be able to launch the driver in silent mode.

    A oneliner for that:

    new ChromeDriver(new ChromeDriverService.Builder().withSilent(true).build());
    

    The constructor is straight-forward, you create a new service builder setting silent to true (that's the critical part) and you finally build it into a ChromeDriverService which is required by ChromeDriver's constructor.

    0 讨论(0)
  • 2020-12-31 13:16

    When I was setting chrome up with

      selenium-chrome-driver-2.48.2.jar
      chromedriver 2.20
      selenium-java-2.48.2.jar
    

    none of the above answers worked for me, Since I see some of the answers are a few years old, I will post what worked for me.

        ChromeOptions chromeOptions = setupChromeOptions();
        System.setProperty("webdriver.chrome.logfile", "\\path\\chromedriver.log");
        System.setProperty("webdriver.chrome.driver", "\\path\\chromedriver.exe");
        System.setProperty("webdriver.chrome.args", "--disable-logging");
        System.setProperty("webdriver.chrome.silentOutput", "true");
        driver = new ChromeDriver(chromeOptions);
    
    0 讨论(0)
提交回复
热议问题