在Playwright中,如何知道运行时是否处于无头模式?

问题描述 投票:0回答:1

当您开发 E2E 测试并在 head 模式下运行时,您可以跳过一些步骤(例如登录)以节省时间或仅在调试模式下添加一些信息。

我在 文档 和其他问题中查找了属性,但没有答案。

playwright headless playwright-typescript
1个回答
0
投票

重要提示:这不能保证在下一个版本(>

"@playwright/test": "1.44.1"
)中继续工作,因为它使用私有参数。

这是我在调试可用变量后提出的解决方案:

function isHeadless(browser) {
  return browser._browserType._defaultLaunchOptions.headless
}

因为我希望它更加健壮,并且如果我没有获得值就不会失败,所以我制作了一个

safeAssign
方法并使用它:

public static safeAssign<T>(expression: () => T, defaultValue: T): T {
    try {
      return expression();
    } catch (error) {
      console.error('An error occurred during safeAssign:', error);
      return defaultValue;
    }
  }

const isHeadless = Utils.safeAssign(() => (browser as any)._browserType._defaultLaunchOptions.headless, null);

当然,这需要获取

browser
参数。我使用了 setup 方法
setup("Your setup...", async ({ browser }) => {
来做到这一点。

据我测试,这适用于 chromium 和 firefox。

希望这会对某人有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.