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

如何用Playwright关闭Firefox Nightly翻译弹窗?

解决Firefox Nightly内置翻译弹窗阻挡Playwright测试的问题

这个弹窗是Firefox原生内置的翻译UI,不属于页面DOM范畴,所以你之前用的page.getByText('Cancel')、page.keyboard.press('Escape')这类针对页面的API完全无效,监听页面弹窗事件也不覆盖浏览器原生UI。直接禁用Firefox的翻译功能是根治方案:

具体实现方法

在Playwright配置Firefox启动参数时,通过firefoxUserPrefs设置Firefox的内置偏好,直接关闭翻译相关功能:

全局配置(playwright.config.js)

module.exports = {
  use: {
    browserName: 'firefox',
    launchOptions: {
      firefoxUserPrefs: {
        // 彻底禁用翻译引擎
        'browser.translation.engine': 'none',
        // 关闭翻译UI显示
        'browser.translation.ui.show': false,
        // 全局禁用翻译功能
        'browser.translation.enabled': false,
        // 可选:禁止页面加载时自动弹出翻译提示
        'browser.translation.promptOnPageLoad': false
      },
    },
  },
};

单测试用例内配置

如果只需要在特定测试中禁用翻译:

const { firefox } = require('@playwright/test');

(async () => {
  const browser = await firefox.launch({
    firefoxUserPrefs: {
      'browser.translation.enabled': false,
      'browser.translation.ui.show': false
    },
  });
  const page = await browser.newPage();
  // 后续测试逻辑
  await browser.close();
})();

为什么之前的方法无效?

  • 原生浏览器UI不属于页面DOM,Playwright的page对象无法访问或操作这类元素;
  • page.keyboard.press('Escape')模拟的是页面内的键盘事件,无法触发系统级/浏览器级的快捷键响应;
  • 页面弹窗监听仅针对页面脚本打开的新窗口/弹窗,不包含浏览器原生组件。

内容的提问来源于stack exchange,提问作者Benjamin L.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 11:17:17