You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Webdriver.io测试时setWindowSize在Chrome中不生效该如何解决

解决方案

  • 排查Chrome启动参数冲突
    检查你的ChromeOptions配置,是否添加了--start-maximized、--kiosk这类和窗口大小控制冲突的启动参数,这类参数的优先级高于setWindowSize接口,会导致调整命令被静默忽略,删掉冲突参数后重试即可。
  • 调整命令调用时机
    确保setWindowSize或者其他窗口调整命令的调用时机在浏览器初始化完成之后,不要放在before hook的最开头,最好放在首次页面跳转之后调用,避免浏览器还没完成初始化就执行命令导致失效。
  • 无头模式优先用启动参数指定窗口大小
    如果你使用的是Chrome无头模式运行测试,直接在启动参数中添加--window-size=1920,1080,比运行时调用setWindowSize的兼容性和稳定性都更高。
  • 更换为Chrome原生CDP接口调整大小
    通用WebDriver的setWindowSize在部分Chrome版本下存在兼容问题,可以直接调用Chrome DevTools Protocol的接口实现窗口调整,CoffeeScript示例代码如下:
    browser.call async ->
      windowInfo = await browser.cdp 'Browser', 'getWindowForTarget'
      await browser.cdp 'Browser', 'setWindowBounds',
        windowId: windowInfo.windowId
        bounds:
          width: 1920
          height: 1080
          windowState: 'normal'
    

补充说明:你之前通过executeScript修改body样式的方法本身无法实现浏览器窗口大小调整,该操作修改的是页面内容区域的样式,和浏览器外层窗口无关,且你代码中还存在拼写错误heigth,即使要修改页面样式也无法生效。

内容的提问来源于stack exchange,提问作者Paganini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 15:06:03