2016-04-07 1 views
2

Ich versuche, Popup-Fenster meiner AngularJS-Anwendung zu wechseln. Im Anschluss ist mein Code:Fehlgeschlagen: Nullwert im Eintrag: Name = Null Fehler beim Umschalten Popup-Fenster

browser.ignoreSynchronization = true; 
    browser.getAllWindowHandles().then(function (handles) { 
     browser.switchTo().window(handles[1]); 

    }); 

Erste folgende Fehler:

Failed: null value in entry: name=null 
Stack: 
UnknownError: null value in entry: name=null 
+0

Dies passiert, wenn Handles [1] nicht existiert. Sie versuchen möglicherweise, auf die neue Registerkarte zu wechseln, bevor sie geladen wird. – KCaradonna

+0

Das Problem kann in Chrome auftreten. Wenn Sie Popups mit Protractor starten, müssen Sie diese Fenster entsprechend benennen, andernfalls erhalten sie den Namen "null" und Sie können nicht zu diesem Popup wechseln. –

+0

Hallo Adrian: kannst du bitte ein Beispiel teilen wie wir das machen können. –

Antwort

5

Sie versuchen, zu einem neuen Tab könnten sein, zu wechseln, bevor es tatsächlich geöffnet wird - warten, bis die Fensteranzahl Griffe mehr zu sein als eine gewünschte Zählung mit einem Zustand benutzerdefinierten Erwartet:

function windowCount(count) { 
    return function() { 
     return browser.getAllWindowHandles().then(function (handles) { 
      return handles.length >= count; 
     }); 
    }; 
}; 
browser.wait(windowCount(2), 10000); 

browser.getAllWindowHandles().then(function (handles) { 
    browser.switchTo().window(handles[1]); 
}); 
+0

Kein glück alexce: ich bekomme fehler für warten timeout –

+0

@AbbasALI zumindest gibt uns das ein paar mehr informationen, dass ein neues fenster nicht wirklich öffnet..kannst du das gleiche problem in firefox und in chrome sehen? Vielen Dank. – alecxe

+0

@alexce: Ich könnte Popup-Fenster geöffnet sehen. Ich setze browser.sleep, um es zu überprüfen, aber nicht handle –

0

In AngularJS Anwendung für Popup-Fenster wird nicht umgehen, müssen wir mo erhalten Del Id für Popup und müssen dann Elemente auf ihm identifizieren

eg.

var alertPop = Element (by.id ('popId'))

erwarten (alertPop.isDisplayed()) toBeTruthy (.);

var element = alertPop.element (by.model ('vm.message'));

Verwandte Themen