2014-04-08 13 views
9

Sto scrivendo un test end-to-end utilizzando il goniometro per la mia applicazione. Sto vedendo errori di forma:Nessun elemento trovato utilizzando l'errore locator: by.model()

No element found using locator: By.model("address.fullName") error. 

Il codice goniometro corrispondente che sta gettando l'errore:

var angularElement = element(By.model("address.fullName")); 
angularElement.sendKeys("test"); 

Tuttavia sono in grado di recuperare questo elemento utilizzando:

var angularElement = element(By.xpath('//input[@ng-model="address.fullName"]')); 

snippet HTML:

input ng-model = "address.fullName" type = "text" class = "controllo-input ng-pristi ne ng-invalid ng-invalid-required "size =" 40 "name =" fullName "ng-class =" {'campo obbligatorio: isInformationSubmitted} "required =" "

Non so perché questo sta succedendo. Qualche idea?

+0

si può mettere un frammento della vista? Come appare l'HTML? –

+1

Internamente, penso che il locator 'By.model' si basi sull'elemento che ha la classe' ng-binding' ad esso applicata. Questa classe dovrebbe essere applicata automaticamente da angolare, ma ho visto casi in cui non è successo ([esempio] (https://github.com/angular/protractor/issues/157)). Controlla se l'elemento che stai cercando di localizzare ha la classe 'ng-binding' o meno. Altrimenti ... io * non * consiglio di metterlo da solo, ma piuttosto di passare a un altro localizzatore (xpath o css) fino a quando il problema di fondo in angolare non viene risolto. –

risposta

4

Ho avuto alcuni errori stretti, si è verificato il mio errore causa l'articolo non è stato mostrato sulla pagina o goniometro non ha terminato di aggiornare il suo modello in modo prima di utilizzare la variabile i:
-maximized pagina: Se l'elemento è stato invisibile browser.manage().window().maximize();
-opened la lista la voce era in:
-waiting per goniometro per completare l'aggiornamento è il modello:

var ptor = protractor.getInstance(); 
ptor.waitForAngular(); 
+2

Dal 1.5.0 sarebbe 'browser.waitForAngular' - https://angular.github.io/protractor/#/api?view=Protractor.prototype.waitForAngular –

Problemi correlati