2016-04-27 12 views
1

e2eテストでiframeに切り替えようとしています。分度器3.x.xでiframeにスワイプ

私のコードは、これが動作していないいくつかの理由

var el = element(by.id('iframe-container')).element(by.tagName('iframe')); 

browser.switchTo().frame(el); 

$('.top-bar-right .btn-primary').click(); 

browser.switchTo().defaultContent(); 

であるセレン/分度器の最後のバージョンに変更が彼らのであれば、誰かが知っているん。

私はセレニウムバージョン2.5.xと分度​​器バージョン3.1.xを持っています。

私のテストでは、私は、このエラーを与えてbugingさ:

FATER ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory 

ありがとうございました!

+0

chromeとfirefoxをチェックインできますか?両方のブラウザで同じエラーが発生しましたか? – alecxe

+0

はい両方で同じ問題 –

答えて

0

あなたは、単に次のように書くことができます。

browser.ignoreSynchronization=true; 
     browser.switchTo().frame('iframe-container').then(function(){ 
      expect('something').not.toBeNull(); 
      $('.top-bar-right .btn-primary').click().then(function(){ 
       browser.switchTo().defaultContent().then(function(){ 
        expect('something').not.toBeNull(); 
       }); 
      }); 
     }); 
0

これは私のために働きました。私の例は、TinyMCEをテストするときにbody要素にアクセスすることです。

var test = function(){ 
    var iframe = element(by.tagName('iframe')); 

    // iframe doesn't have angular... 
    browser.ignoreSynchronization = true; 

    // must enter the iframe with the WebElement? 
    // or it crashes with out of memory error!! 
    return browser.switchTo().frame(iframe.getWebElement()) 
      .then(function(){ 
       // in the iframe.. 
       var editor_body = element(by.tagName('body')); 
       editor_body.sendKeys('test'); 
      }) 
      .then(function(){ 
       // restore sync for angular 
       browser.ignoreSynchronization = false; 
       return browser.switchTo().defaultContent(); 
      }); 
};