2016-04-27 10 views
1

Ich versuche, in meinem e2e Test zu einem iframe zu wechseln.Swith zu einem iframe mit Winkelmesser 3.x.x

Mein Code ist

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

browser.switchTo().frame(el); 

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

browser.switchTo().defaultContent(); 

Aus irgendeinem Grunde dies nicht funktioniert, hat jemand weiß, ob sie jede Änderung in den letzten Versionen von Selen/Transporteur ist.

Ich habe Selen Version 2.5.x und Winkelmesser Version 3.1.x.

Mein Test ist buging mir diesen Fehler geben:

FATER ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory 

Vielen Dank!

+0

Können Sie in Chrome und Firefox einchecken - gleiche Fehler in beiden Browsern? – alecxe

+0

Ja, das gleiche Problem bei beiden –

Antwort

0

Sie können einfach so schreiben:

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

Das ist für mich gearbeitet. Mein Beispiel ist der Zugriff auf das body-Element beim Testen von TinyMCE.

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(); 
      }); 
};