Похоже, что ваш css неверен, вместо .ng-valid вы должны поместить .ng-invalid
Sanja Paskova
3
javascript,angularjs,protractor,automated-tests,
Использование имени класса не рекомендуется, потому что они могут измениться в ближайшем будущем.
Предположим, вы пытаетесь ввести имя пользователя, предыдущий узел будет содержать видимое текстовое (т.е.) имя пользователя или что-то
Попробуйте найти этот узел, а затем следующий элемент ввода.
пример:
By.css()
Прежде чем пытаться мои предложения, пожалуйста, проверьте ответ B
.
Здесь я вижу несколько потенциальных проблем:
1) Вы используете by.css()
в прописном, B
а не в b
нижнем регистре b
. Я не знаю, так ли это.
2) element.all()
возвращает a, ElementArrayFinder
а не a ElementFinder
. Вы должны либо использовать element.all(by.css('foo')).first().sendKeys('bla');
ИЛИ element(by.css('foo')).sendKeys('bla');
.
3) Если это не точка 1 и 2, попробуйте нажать на вход перед отправкой ключей:
var input = element(by.css('.form-control.validation-field.ng-dirty.ng-valid.ng-touched'));
input.click().then(function() {
input.sendKeys('sample code');
});
Просто некоторые догадки.