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?
si può mettere un frammento della vista? Come appare l'HTML? –
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. –