pin*_*yid 18 browser-automation jasmine selenium-webdriver protractor chrome-web-driver
我有一个测试,每次运行它,抛出" UnknownError:未知错误:超出最大调用堆栈大小. "
此测试在我的一项服务中调用了一种写入Google云端硬盘的方法.
失败的测试是使用"ui"调用我的doDrive函数,这意味着更新Drive项.如果我更改单个字符"ui" - >"ni",意味着创建一个新的Drive项目,测试工作.被测代码在正常使用中工作正常.
it('should update a file', function() {
browser.executeAsyncScript(function(callback) {
// get service
var service=angular.element(document.getElementById('ngapp')).injector().get('DriveQ')
// generate a title
var title = 'title of file';
// call doDrive to create a new file
service.doDrive({t:'ui',id:'0B6B-RNrxsCu2Sll7JZTYy2aDA', item:{title:title}})
.then(function (resp){
resp.originalTitle=title;
callback(resp)
});
}).then(function(resp) {
expect(resp.title).toEqual(resp.originalTitle);
});
});
Run Code Online (Sandbox Code Playgroud)
我直接使用chrome webdriver,我也有 browser.ignoreSynchronization = true;
Off*_*rmo 18
我有同样的问题.我发现将大对象从浏览器返回到量角器会导致"未知错误:未知错误:超出最大调用堆栈大小"错误.
您应该resp
使用回调检查要发送回的对象的复杂性.如果它太大,请尝试发回更少的数据.
这可以发生executeAsyncScript
,executeScript
和evaluate
(使用executeScript
).
由OP编辑......
通过更改callback(resp)
来 修复callback({title:resp.title})
,即简化返回的对象以仅包含我正在进行的那些项目.
归档时间: |
|
查看次数: |
4340 次 |
最近记录: |