gpt4 book ai didi

angular - Protractor :只能为页面启用虚拟时间,不能为 worker 启用

转载 作者:行者123 更新时间:2023-12-04 01:51:48 25 4
gpt4 key购买 nike

在我的 angular 应用程序中,我将一些繁重的逻辑外包给了 Web Worker。
在 Chrome Headless 中使用 Protractor 运行 e2e 测试后,我在 Protractor 所做的每个 Action 上都会收到以下错误。请注意,e2e 结果仍然不错。只有这个烦人的错误日志。

[1003/234747.472:ERROR:inspector_emulation_agent.cc(537)] Can only enable virtual time for pages, not workers

有人已经看过了吗?

它本身的错误来自 Chromium
Response InspectorEmulationAgent::AssertPage() {
if (!web_local_frame_) {
LOG(ERROR) << "Can only enable virtual time for pages, not workers";
return Response::InvalidParams(
"Can only enable virtual time for pages, not workers");
}
return Response::OK();
}

https://chromium.googlesource.com/chromium/src/third_party/+/master/blink/renderer/core/inspector/inspector_emulation_agent.cc

最佳答案

在您的配置文件中,有 capabilities 对象(如果您针对多个浏览器运行测试,则为 multiCapabilities)。这个对象,除其他外,有一个属性 args 它接受参数数组

capabilities: {
"browserName": "chrome",
"chromeOptions": {
"args": ["incognito","--window-size=1920,1080","disable-extensions","--no-sandbox","start-maximized","--test-type=browser"]
}
}

删除 "--no-sandbox" 参数!

这家伙所做的是允许您从远程容器(即在 Jenkins 中)运行测试。同时,如果您在机器上运行测试时包含该参数,则会产生类似于此处描述的副作用 Chrome Instances don't close after running Test Case in Protractor

我认为它也会导致您的错误。所以“只能启用虚拟时间...”可能表示没有“虚拟”容器,只有本地进程。

我对这个问题的临时解决方案是始终从我的本地配置中删除这个参数,但不要提交它。

我的永久解决方案是通过 Grunt 使用默认值 isHost 创建一个可选标志 false 。然后在我的配置中,如果参数是 true 我将 "--no-sandbox" 推到其他 chrome 参数之上。当我配置 CI 时,我使用该参数启动 Protractor

关于angular - Protractor :只能为页面启用虚拟时间,不能为 worker 启用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52636211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com