Сиеста: "Невозможно выполнить код из освобожденного скрипта"
У меня есть сценарий тестирования, где мне нужно получить доступ к предварительно загруженному файлу из объекта окна после входа и выхода из страницы.
Конфигурация жгута:
var Harness = Siesta.Harness.Browser.ExtJS;
Harness.configure({
preload : [
'vuxtest.js'
],
hostPageUrl : '../vux/',
performSetup : false
});
Тестовый объект:
{
url : 'Test.js',
separateContext : true
}
Предварительно загруженный файл vuxtest.js устанавливает объект window.vuxtest.
Скелет Test.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() с ошибкой: невозможно выполнить код из освобожденного скрипта. Любая идея, что я могу сделать, чтобы это исправить?
1 ответ
Похоже, что обратный вызов был выгружен из объекта, в котором он определен, после некоторой задержки при выполнении запроса. Вы обычно видите это сообщение, когда это происходит в IE, но другие браузеры просто игнорируют.
Попробуйте обернуть обратный вызов в блок try-catch:
try {
t.chain(
//sign out
{
...
},
//sign back in
{
...
},
//call function from vuxtestObj
{
vuxtestObj.funcA();
}
);
}
catch(err) {
}