Chromedriver --screenshot not working in headless mode?

16,666

The window-size argument expects string format 800,600, try this instead:

chromeOptions.addArguments("window-size=1980,960");

Also, you have a typo in your screenshot argument:

chromeOptions.addArguments("screenshot");

Here's a great reference of all available Chromium command line switches:

https://peter.sh/experiments/chromium-command-line-switches/

Share:
16,666
Ranjith's
Author by

Ranjith's

ISTQB tester with over 8 years of experience in performing QA activities for web and client-server applications.

Updated on June 17, 2022

Comments

  • Ranjith's
    Ranjith's about 2 years

    I'm using new chrome driver headless mode (Chrome v59, mac os) with webdriver. but unfortunately, screenshot option given in headless mode is not working for me. following code shows the chrome options configured.

    chromeOptions.addArguments("headless");
    chromeOptions.addArguments("disable-gpu");
    chromeOptions.addArguments("window-size=1980x960");
    chromeOptions.addArguments("screenshot");
    

    I'm getting unknown chrome error:

    unknown error: Chrome failed to start: exited abnormally
      (Driver info: chromedriver=2.30.477690 (c53f4ad87510ee97b5c3425a14c0e79780cdf262),platform=Mac OS X 10.11.6 x86_64) (WARNING: The server did not provide any stacktrace information)
    Command duration or timeout: 60.05 seconds
    Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
    System info: host: 'ip-192-168-13-242.ec2.internal', ip: '192.168.13.242', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.11.6', java.version: '1.8.0_51'
    Driver info: driver.version: ChromeDriver
            at com.axonix.utilities.SeleniumDriverWrapper.setupNewDriverInstance(SeleniumDriverWrapper.java:78)
            at com.axonix.utilities.SeleniumDriverWrapper.<init>(SeleniumDriverWrapper.java:55)
            at com.axonix.utilities.SeleniumInterface.<init>(SeleniumInterface.java:30)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
            at org.picocontainer.injectors.AbstractInjector.newInstance(AbstractInjector.java:145)
            at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:342)
            at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
            at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
            at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
            at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
            at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
            at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
            at org.picocontainer.DefaultPainer.getComponent(DefaultPicoContainer.java:647)
            at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:632)
            at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
            at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
            at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
            at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309)
            at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
            at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
            at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
            at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
            at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
            at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
            at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
            at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
            at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:678)
            at cucumber.runtime.java.picocontainer.PicoFactory.getInstance(PicoFactory.java:40)
            at cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:38)
            at cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:37)
            at cucumber.runtime.Runtime.runStep(Runtime.java:300)
            at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44)
            at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39)
            at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:44)
            at cucumber.runtime.model.CucumberFeature.run(CucumberFeature.java:165)
            at cucumber.runtimee.run(Runtime.java:122)
            at cucumber.api.cli.Main.run(Main.java:36)
            at cucumber.api.cli.Main.main(Main.java:18)
    
    • JeffC
      JeffC almost 7 years
      What does not working mean? Please read How to Ask, especially the part about minimal reproducible example (MCVE), and How much research effort is expected? This will help you debug your own programs and solve problems for yourself. If you do this and are still stuck you can come back and post your MCVE, what you tried, and the execution result including any error messages so we can better help you.
    • Ranjith's
      Ranjith's almost 7 years
      @JeffC updated my question with error i'm getting!!