【问题标题】:Network.emulateNetworkConditions doesn't work in chrome 59 --headlessNetwork.emulateNetworkConditions 在 chrome 59 --headless 中不起作用
【发布时间】:2017-11-09 10:25:36
【问题描述】:

我正在尝试使用 chrome-remote-interfaceexample 作为起点来模拟 chrome --headless(chrome 版本 59)中的常规 3G 连接

const CDP = require('chrome-remote-interface');
const fs = require('fs');

CDP(async (client) => {
    try {
        const {Page, Tracing, Network} = client;

        Network.emulateNetworkConditions({
            offline: false,
            latency: 100,
            downloadThroughput: 750 * 1024 / 8,
            uploadThroughput: 250 * 1024 / 8
        });

        await Promise.all([Network.enable(), Page.enable()]);

        const { result } = await Network.canEmulateNetworkConditions();
        console.log(result); // always false

        // trace a page load
        const events = [];
        Tracing.dataCollected(({value}) => {
            events.push(...value);
        });
        await Tracing.start();
        await Page.navigate({url: 'https://github.com'});
        await Page.loadEventFired();
        await Tracing.end();
        await Tracing.tracingComplete();
        // save the tracing data
        fs.writeFileSync('./timeline.json', JSON.stringify(events));
    } catch (err) {
        console.error(err);
    } finally {
        await client.close();
    }
}).on('error', (err) => {
    console.error(err);
});

但是Network.emulateNetworkConditions 似乎不起作用。证明Network.canEmulateNetworkConditions() 总是返回false。没有--headless 标志Network.canEmulateNetworkConditions() 返回true

chrome-canary --headless(版本 61)给出相同的结果。

我的示例是否包含错误或 chrome 59 目前缺少此功能?

【问题讨论】:

标签: javascript performance google-chrome google-chrome-devtools headless-browser


【解决方案1】:

在版本 64 以下的无头 Chrome 中缺少 feature。目前 Network.emulateNetworkConditions 在 Chromium 和 Chrome Canary (64) 无头模式下工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多