我有一个测试场景,我需要在登录和注销页面后从窗口对象访问预加载的文件。
线束配置为:
var Harness = Siesta.Harness.Browser.ExtJS;
Harness.configure({
preload : [
'vuxtest.js'
],
hostPageUrl : '../vux/',
performSetup : false
});
测试对象是:
{
url : 'Test.js',
separateContext : true
}
预加载的文件 vuxtest.js 设置 window.vuxtest 对象。
测试.js的骨架包括:
startTest(function(test) {
var vuxtestObj = test.global.vuxtest; ...
vuxtestObj.run(test, 'Icons', function() {
test.it('Sign out - Sign in - Test Grid '+ row, function(t) {
t.chain(
//sign out
{
...
},
//sign back in
{
...
},
//call function from vuxtestObj
{
vuxtestObj.funcA();
}
);
});
});
});
这段代码在Chrome中有效,但在IE中无效,因为它在vuxtestObj.funcA()上中断,错误:无法从释放的脚本执行代码。知道我能做些什么来解决这个问题吗?
似乎在
执行请求一段时间后,回调从定义它的对象中卸载。当它发生在IE中时,您通常会看到此消息,但其他浏览器只是简单地忽略。
尝试将回调包装在 try-catch 块中:
try {
t.chain(
//sign out
{
...
},
//sign back in
{
...
},
//call function from vuxtestObj
{
vuxtestObj.funcA();
}
);
}
catch(err) {
}