【问题标题】:Chrome remote debugging port usage for chrome profiling using Webdriverio使用 Webdriverio 进行 chrome 分析的 Chrome 远程调试端口使用情况
【发布时间】:2017-11-07 23:03:09
【问题描述】:

我目前正在使用 Chrome 分析 API 来获取代码覆盖率,如下所示。

但每当我尝试运行测试时,都会收到以下错误

错误:意外的服务器响应 (404) 在 ClientRequest.response (/Users/svg7/projects/examples/build/js/testSuites.js:8419:16) 在 ClientRequest.g (events.js:291:16) 在 emitOne (events.js:96:13) 在 ClientRequest.emit (events.js:188:7) 在 HTTPParser.parserOnIncomingClient (_http_client.js:472:21) 在 HTTPParser.parserOnHeadersComplete (_http_common.js:99:23) 在 Socket.socketOnData (_http_client.js:361:20) 在 emitOne (events.js:96:13) 在 Socket.emit (events.js:188:7) 在 readableAddChunk (_stream_readable.js:176:18)

我的代码如下:

import * as fs from "fs";
import {createSession} from "chrome-debugging-client";

describe("Functional Coverage example", function() {
this.timeout(880000);
it("Get the coverage", () => {
    createSession(async (session) => {
        const api = await session.createAPIClient("localhost", 6813);
        console.dir(api);
        const tabs = await api.listTabs();
        const tab = tabs[0];
        console.log("====>");
        console.log(tab.webSocketDebuggerUrl);
        // browser.stop();
        let client = await session.openDebuggingProtocol("http://localhost:6813");
        await client.send("Profiler.enable");
        await client.send("Page.enable");
        await client.send("Profiler.startPrecisionCoverage", {callCount: true});
        await client.send("Page.navigate", {url: "https://www.microsoft.com"});
        await new Promise((resolve) => client.on("Page.loadEventFired", resolve));
        await new Promise((resolve) => setTimeout(resolve, 10000));
        let result = await 
client.send("Profiler.takePrecisionCoverage");
        fs.writeFileSync("coverage.json", JSON.stringify(result, null, 2));
    }). catch(err => {
        console.error(err);
    });
});

    after(() => {
    });
});

我正在采取的步骤:

  1. 通过./chrome --remote-debugging-port=6813启动浏览器;
  2. 运行测试。

【问题讨论】:

    标签: javascript promise google-chrome-devtools chromium webdriver-io


    【解决方案1】:

    我也遇到了同样的问题。 似乎有一个按选项卡的调试器链接,所以只需替换:

    session.openDebuggingProtocol("http://localhost:6813")

    session.openDebuggingProtocol(tab.webSocketDebuggerUrl);

    【讨论】:

      猜你喜欢
      • 2017-12-29
      • 2018-04-16
      • 2019-01-04
      • 2013-11-27
      • 2014-03-31
      • 2014-12-25
      • 1970-01-01
      • 2019-04-18
      相关资源
      最近更新 更多