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

如何在Nightwatch.js中实现浏览器缩放到50%?快捷键方法无效

在Nightwatch.js中实现浏览器缩放至50%的可行方案

你的代码失效是两个原因:一是错误地把browser.Keys.SUBTRACT当成字符串传入,二是单次按键只能将缩放调至90%,无法直接到50%。下面是几种可行的实现方式:

推荐 方法一:使用Chrome DevTools协议

这种方式直接调用浏览器原生API设置缩放比例,精准且稳定,适用于Chrome、Edge等Chromium内核浏览器:

// 设置缩放为50%
browser.executeChromeCommand('Emulation.setDeviceMetricsOverride', {
  mobile: false,
  width: 1920, // 可替换为你的目标视口宽度
  height: 1080, // 可替换为你的目标视口高度
  deviceScaleFactor: 0.5, // 缩放比例,0.5对应50%
  scale: 0.5
});

// 测试完成后恢复默认缩放
browser.executeChromeCommand('Emulation.clearDeviceMetricsOverride');

方法二:修正按键操作(兼容多浏览器)

先重置缩放至100%,再重复按下Ctrl+-组合键(每次缩放减少10%,从100%到50%需要按5次):

// 重置缩放为100%
browser.keys([browser.Keys.CONTROL, '0', browser.Keys.NULL]);

// 连续按5次Ctrl+-实现50%缩放
for (let i = 0; i < 5; i++) {
  browser.keys([browser.Keys.CONTROL, browser.Keys.SUBTRACT, browser.Keys.NULL]);
}

注意:Mac系统需将browser.Keys.CONTROL替换为browser.Keys.COMMAND。

方法三:页面级缩放(仅修改页面渲染)

如果不需要浏览器整体缩放,只是想让页面元素显示为50%大小,可以通过执行JS修改页面样式:

browser.execute(function() {
  document.body.style.zoom = '50%';
});

这种方式不会改变浏览器的实际缩放设置,仅作用于当前页面的渲染效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:42:26