0

我搜索了相关主题。我发现的最重要的是在带有 testcafe 的浏览器中设置用户代理

但它并没有提供任何真正的答案。

我的目标是运行测试以欺骗不同的操作系统:由于我在 Linux 中并且我正在测试的应用程序不受支持,因此它显示了一些警告,我希望在测试运行时摆脱这些警告。

我们尝试了 cypress,您只需在配置文件中添加 UserAgent 字符串即可。但是在没有 CLI 参数的情况下,我还没有在 testcafe 上找到一种直接的方法。

有没有办法在 testcafe 中欺骗 OS 或 userAgent?

4

1 回答 1

0

您可以使用RequestHooks机制修改用户代理。我准备了一个示例来演示这种方法:

import { RequestHook } from 'testcafe';

class UserAgentRequestHook extends RequestHook {
    onRequest (e) {
        e.requestOptions.headers['user-agent'] = 'Mozilla/5.0 (Android 4.4; Tablet; rv:41.0) Gecko/41.0 Firefox/41.0';
    }

    onResponse (e) {
    }
}

const hook = new UserAgentRequestHook();

fixture `f`
    .page `https://www.whatismybrowser.com/detect/what-is-my-user-agent/`;

test.requestHooks(hook)(`test`, async t => {
    await t.debug();
});

请注意,TestCafe 在内部使用 UserAgent,因此不正确的 UA 值可能会导致不可预知的结果。

于 2022-02-21T10:05:20.333 回答