Javascript 角度量角器executeScript/executeAsyncScript:超出最大调用堆栈大小
我正在尝试使用以下代码检索量角器中指令上的隔离作用域:Javascript 角度量角器executeScript/executeAsyncScript:超出最大调用堆栈大小,javascript,angularjs,scope,protractor,Javascript,Angularjs,Scope,Protractor,我正在尝试使用以下代码检索量角器中指令上的隔离作用域: protractor.executeAsyncScript(function(callback){ var isolatedScope = angular.element("div[my-directive='data']").isolateScope(); callback(isolatedScope); }).then(function(isolatedScope){ console.log("directive
protractor.executeAsyncScript(function(callback){
var isolatedScope = angular.element("div[my-directive='data']").isolateScope();
callback(isolatedScope);
}).then(function(isolatedScope){
console.log("directive's isolatedScope:", isolatedScope);
});
不幸的是,我从Chrome收到以下错误:
未知错误:未知错误:超过最大调用堆栈大小(会话信息:chrome=34.0.1847.131)您不应该将太大/太复杂的对象从客户端发送回量角器。在您的情况下,
isolatedScope
太大
这可能发生在executesyncscript()
、executeScript()
和evaluate()
(使用executeScript()
)的情况下
如果您正在排除故障,您能在量角器之外重现它吗?然后很容易观察范围:右键单击“inspect element”,然后在开发控制台中键入$scope
如果您出于测试原因试图检查范围,那么您没有在正确的位置进行测试。量角器测试是高级“黑箱”测试。你很关心用户的视角,比如“按钮是否可见?”。用户永远不会与作用域交互,您也不应该这样做。要测试指令内部状态,请使用DOM客户端单元测试。您不应该将太大/太复杂的对象从客户端发送回量角器。在您的情况下,
isolatedScope
太大
这可能发生在executesyncscript()
、executeScript()
和evaluate()
(使用executeScript()
)的情况下
如果您正在排除故障,您能在量角器之外重现它吗?然后很容易观察范围:右键单击“inspect element”,然后在开发控制台中键入$scope
如果您出于测试原因试图检查范围,那么您没有在正确的位置进行测试。量角器测试是高级“黑箱”测试。你很关心用户的视角,比如“按钮是否可见?”。用户永远不会与作用域交互,您也不应该这样做。要测试指令内部状态,请使用DOM客户端单元测试。超过最大调用堆栈大小的原因之一是函数调用自身时出错。比如说
let next = async function () {
await $nextButton.click();
await next();
}
这里发生的是代码进入无限循环并抛出错误
因此,只需检查您的代码,并确保您不会在某个地方意外地执行此操作超过最大调用堆栈大小的原因之一是函数调用自身时出错。比如说
let next = async function () {
await $nextButton.click();
await next();
}
这里发生的是代码进入无限循环并抛出错误
因此,只要检查一下您的代码,并确保您不会在某个地方意外地这样做您本可以回答自己的问题,因为您在GitHub()上得到了答案,这也会对我有所帮助!既然你在GitHub()上得到了答案,你就可以回答你自己的问题了。这对我也有帮助!