Selenium Chromedriver——屏幕截图在无头模式下不工作?

Selenium Chromedriver——屏幕截图在无头模式下不工作?,selenium,selenium-webdriver,webdriver,selenium-chromedriver,headless,Selenium,Selenium Webdriver,Webdriver,Selenium Chromedriver,Headless,我正在使用新的chrome驱动程序无头模式(chrome v59,mac os)和webdriver。但不幸的是,在无头模式下给出的屏幕截图选项对我不起作用。下面的代码显示了配置的chrome选项 chromeOptions.addArguments("headless"); chromeOptions.addArguments("disable-gpu"); chromeOptions.addArguments("window-size=1980x960"); chromeOptions.ad

我正在使用新的chrome驱动程序无头模式(chrome v59,mac os)和webdriver。但不幸的是,在无头模式下给出的屏幕截图选项对我不起作用。下面的代码显示了配置的chrome选项

chromeOptions.addArguments("headless");
chromeOptions.addArguments("disable-gpu");
chromeOptions.addArguments("window-size=1980x960");
chromeOptions.addArguments("screenshot");
我收到未知的chrome错误:

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)
未知错误:Chrome启动失败:异常退出
(驱动程序信息:chromedriver=2.30.477690(c53f4ad87510ee97b5c3425a14c0e79780cdf262),平台=Mac OS X 10.11.6 x8664)(警告:服务器未提供任何堆栈跟踪信息)
命令持续时间或超时:60.05秒
生成信息:版本:“3.4.0”,版本:“未知”,时间:“未知”
系统信息:主机:'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.version:ChromeDriver
位于com.axonix.utilities.SeleniumDriverWrapper.setupNewDriverInstance(SeleniumDriverWrapper.java:78)
位于com.axonix.utilities.SeleniumDriverWrapper.(SeleniumDriverWrapper.java:55)
位于com.axonix.utilities.SeleniumInterface(SeleniumInterface.java:30)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:422)
位于org.picocontainer.injectors.AbstractInjector.newInstance(AbstractInjector.java:145)
位于org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:342)
在org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicdDependencyGuard.observe上(AbstractInjector.java:270)
位于org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
位于org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
位于org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
位于org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
位于org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
位于org.picocontainer.DefaultPainer.getComponent(DefaultPicoContainer.java:647)
位于org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:632)
位于org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
位于org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
位于org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
位于org.picocontainer.injectors.ConstructorInjector$ctorandapters.getParameterArguments(ConstructorInjector.java:309)
位于org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
在org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicdDependencyGuard.observe上(AbstractInjector.java:270)
位于org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
位于org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
位于org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
位于org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
位于org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
位于org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
位于org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:678)
在cucumber.runtime.java.picocontainer.picofacory.getInstance(picofacory.java:40)中
在cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:38)中
在cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:37)
atcumber.runtime.runtime.runStep(runtime.java:300)
在cumber.runtime.model.StepContainer.runStep(StepContainer.java:44)
atcumber.runtime.model.StepContainer.runSteps(StepContainer.java:39)
在cucumber.runtime.model.cucumbersecenario.run(cucumbersecenario.java:44)
在cucumber.runtime.model.cucumberfeact.run(cucumberfeact.java:165)上运行
运行(Runtime.java:122)
位于cucumber.api.cli.Main.run(Main.java:36)
位于cucumber.api.cli.Main.Main(Main.java:18)
参数需要字符串格式
800600
,请尝试以下操作:

chromeOptions.addArguments("window-size=1980,960");
此外,您的论点中有一个输入错误:

chromeOptions.addArguments("screenshot");

以下是所有可用的Chromium命令行开关的重要参考:


什么是不工作?请阅读,特别是关于(MCVE)的部分,这将帮助您调试自己的程序并自行解决问题。如果您这样做了,但仍然卡住了,您可以回来发布您的MCVE、您尝试过的内容以及执行结果,包括任何错误消息,以便我们能够更好地帮助您。@JeffC用我收到的错误更新了我的问题!!