量角器:只能为页面启用虚拟时间,不能为工作人员启用虚拟时间
Protractor: Can only enable virtual time for pages, not workers
在我的 angular 应用程序中,我将一些繁重的逻辑外包给了 Web Worker。
运行 在 Chrome Headless 中使用量角器进行 e2e 测试后,我在量角器进行的每个动作中都收到以下错误。请注意,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();
}
在您的配置文件中,有 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
我想这也会导致您的错误。所以"Can only enable virtual time..."大概说明没有"virtual"容器,只有本地进程。
我的临时解决方案是始终从我的本地配置中删除此参数,但不提交它。
我的永久解决方案是通过 G运行t 创建一个可选标志 isHost
,默认值 false
。然后在我的配置中,如果参数是 true
,我将 "--no-sandbox"
推到其他 chrome 参数之上。当我配置 CI 我用那个参数启动 Protractor
在我的 angular 应用程序中,我将一些繁重的逻辑外包给了 Web Worker。 运行 在 Chrome Headless 中使用量角器进行 e2e 测试后,我在量角器进行的每个动作中都收到以下错误。请注意,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();
}
在您的配置文件中,有 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
我想这也会导致您的错误。所以"Can only enable virtual time..."大概说明没有"virtual"容器,只有本地进程。
我的临时解决方案是始终从我的本地配置中删除此参数,但不提交它。
我的永久解决方案是通过 G运行t 创建一个可选标志 isHost
,默认值 false
。然后在我的配置中,如果参数是 true
,我将 "--no-sandbox"
推到其他 chrome 参数之上。当我配置 CI 我用那个参数启动 Protractor