无法在无头模式下最大化 Chrome 窗口 [英] Not able to maximize Chrome Window in headless mode

查看:132
本文介绍了无法在无头模式下最大化 Chrome 窗口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我最近将我的 chrome 版本升级到了 60,chromedriver 升级到了 2.31 版.发帖说当我尝试最大化浏览器窗口时,我开始收到以下异常.

driver.driver.manage().window().maximize()

<块引用>

org.openqa.selenium.WebDriverException:未知错误:未能将窗口状态更改为最大化,当前状态正常(会话信息:chrome=60.0.3112.78)(驱动程序信息:chromedriver=2.31.488763(092de99f48a300323ecf8c2a4e2e7cab51de5ba8),平台=Linux4.2.0-27-generic x86_64)(警告:服务器没有提供任何堆栈跟踪信息)命令持续时间或超时:108 毫秒构建信息:版本:'2.53.1',修订:'a36b8b1cd5757287168e54b817830adce9b0158d',时间:'2016-06-3019:26:09' 系统信息:主机:'bb-blr-prod-stage-stg1-01',IP:'10.3.211.2', os.name: 'Linux', os.arch: 'amd64', os.version:'4.2.0-27-generic', java.version: '1.7.0_80' 会话 ID:c7de7149dd490cc7760d2f4fc49f0325 驱动程序信息:org.openqa.selenium.chrome.ChromeDriver 功能 [{platform=LINUX,acceptSslCerts=true, javascriptEnabled=true, browserName=chrome,铬={userDataDir=/tmp/.org.chromium.Chromium.WABPhO,chromedriverVersion=2.31.488763(092de99f48a300323ecf8c2a4e2e7cab51de5ba8)},networkConnectionEnabled=false,unexpectedAlertBehaviour=,可旋转=假,setWindowRect=true,locationContextEnabled=true,mobileEmulationEnabled=false, pageLoadStrategy=normal,版本=60.0.3112.78,takesHeapSnapshot=true,cssSelectorsEnabled=true,databaseEnabled=false,handlesAlerts=true,browserConnectionEnabled=false, webStorageEnabled=true,nativeEvents=true,hasTouchScreen=false,applicationCacheEnabled=false,takesScreenshot=true}]

我在 Geb 上使用 ChromeDriver 在无头模式下运行我的测试.

  • Chrome 版本 - 60.0.3112.78
  • chromedriver 版本 - 2.31.488763
  • 操作系统 - Ubuntu 14.04.4 LTS
  • 硒版本 - 2.53.1
  • WebDriver 语言绑定
  • Geb - 0.13.1

解决方案

由于您在无头模式下运行测试,因此没有可用的 active 浏览器窗口.因此你的

 driver.driver.manage().window().maximize()

在这种情况下总是会失败,因为驱动程序不知道要最大化哪个窗口,因为没有可用的窗口.

您可以按照@DebanjanB 提到的内容进行操作,也可以使用特定屏幕尺寸(如 1440x900 等)启动无头浏览器,执行类似操作

 driver.manage().window().setSize(new Dimension(1440, 900));

I recently upgraded my chrome version to 60 and chromedriver to version 2.31. Post that I have started getting the following exception when I try to do a maximize of the browser window.

driver.driver.manage().window().maximize()

org.openqa.selenium.WebDriverException: unknown error: failed to change window state to maximized, current state is normal (Session info: chrome=60.0.3112.78) (Driver info: chromedriver=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8),platform=Linux 4.2.0-27-generic x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 108 milliseconds Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09' System info: host: 'bb-blr-prod-stage-stg1-01', ip: '10.3.211.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.2.0-27-generic', java.version: '1.7.0_80' Session ID: c7de7149dd490cc7760d2f4fc49f0325 Driver info: org.openqa.selenium.chrome.ChromeDriver Capabilities [{platform=LINUX, acceptSslCerts=true, javascriptEnabled=true, browserName=chrome, chrome={userDataDir=/tmp/.org.chromium.Chromium.WABPhO, chromedriverVersion=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8)}, networkConnectionEnabled=false, unexpectedAlertBehaviour=, rotatable=false, setWindowRect=true, locationContextEnabled=true, mobileEmulationEnabled=false, pageLoadStrategy=normal, version=60.0.3112.78, takesHeapSnapshot=true, cssSelectorsEnabled=true, databaseEnabled=false, handlesAlerts=true, browserConnectionEnabled=false, webStorageEnabled=true, nativeEvents=true, hasTouchScreen=false, applicationCacheEnabled=false, takesScreenshot=true}]

I run my tests in headless mode using ChromeDriver on Geb.

  • Chrome version - 60.0.3112.78
  • chromedriver version - 2.31.488763
  • OS - Ubuntu 14.04.4 LTS
  • Selenium version - 2.53.1
  • WebDriver Language Bindings
  • Geb - 0.13.1

解决方案

Since you're running tests in a headless mode, there is no active browser window available. As such your

   driver.driver.manage().window().maximize()

would always fail in such situations because the driver doesn't know which window to maximize since there aren't any available.

You can either follow what @DebanjanB has mentioned or you can start the headless browser with a specific screen size like 1440x900 etc, doing something like this

 driver.manage().window().setSize(new Dimension(1440, 900));

这篇关于无法在无头模式下最大化 Chrome 窗口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆