I'm writing an end to end test using protractor for my application. I'm seeing errors of the form:
No element found using locator: By.model("address.fullName") error.
The corresponding protractor code which is throwing this error is:
var angularElement = element(By.model("address.fullName"));
angularElement.sendKeys("test");
However I'm able to fetch this element using:
var angularElement = element(By.xpath('//input[@ng-model="address.fullName"]'));
HTML snippet:
input ng-model="address.fullName" type="text" class="control-input ng-pristine ng-invalid ng-invalid-required" size="40" name="fullName" ng-class="{ 'required-field': isInformationSubmitted }" required=""
I'm not sure why this is happening. Any ideas?
By.modellocator relies on the element having theng-bindingclass applied to it. This class is supposed to be applied automatically by angular, but I've seen instances where it didn't happen (example). Check if the element you're trying to locate has theng-bindingclass or not. If not... I would not recommend putting it in yourself, but rather simply switching to a different locator (xpath or css) until the underlying issue in angular is fixed.