1

ページにサインインしてサインアウトした後、window オブジェクトからプリロードされたファイルにアクセスする必要があるテスト シナリオがあります。

ハーネス構成は次のとおりです。

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 では機能しますが、vuxtestObj.funcA() でエラー : cannot execute code from a freed script で中断するため、IE では機能しません。これを修正するために何ができますか?

4

1 に答える 1

0

リクエストの実行が少し遅れた後、コールバックが定義されているオブジェクトからアンロードされたようです。通常、このメッセージは IE で発生したときに表示されますが、他のブラウザーでは単純に無視されます。

コールバックを try-catch ブロックでラップしてみてください。

try {
   t.chain(
   //sign out
   {
       ...
   },

   //sign back in
   {
       ...
   },

   //call function from vuxtestObj
   {
      vuxtestObj.funcA();
   }
   );
}
catch(err) {

}
于 2015-01-16T19:20:32.723 に答える