У меня есть приложение с двумя страницами... первая страница - это целевая страница, на которой есть кнопка входа в систему... как только пользователь нажимает эту кнопку входа, он перенаправляется на login.html.... где есть два входа. Один для имени пользователя и один для пароля.
Соответствующий код выглядит так:
index.html
<a ui-sref="login" class="fa fa-sign-in" href="/login"> Login</a>
и
login.html
<input type="text" id="username" name="username" placeholder="Username" ng-model="user.username" required="" autocomplete="off" class="ng-pristine ng-invalid ng-invalid-required">
<input type="password" name="password" placeholder="Password" ng-model="user.password" required="" autocomplete="off" class="ng-pristine ng-invalid ng-invalid-required">
В моем тесте я сначала нажимаю кнопку входа и проверяю, правильно ли я перенаправился на новую страницу. Этот тест проходит, но затем я получаю сообщение об ошибке, когда пытаюсь ввести данные в эти поля ввода, как будто этих полей не существует. Я пытался перевести браузер в спящий режим, но это тоже не сработало.
// in test/e2e/main.spec.js
describe('E2E: main page', function(){
'use strict';
var ptor;
// keep track of the protractor instance
beforeEach(function(){
browser.get('http://127.0.0.1:9000/');
ptor = protractor.getInstance();
});
it('it should load the login page once the login button is clicked', function(){
var link = element(by.css('.fa.fa-sign-in'))
link.click();
browser.sleep(4000);
expect(ptor.getCurrentUrl()).toMatch(/\/login/);
element(by.input('user.username')).sendKeys('test');
element(by.input('user.password')).sendKeys('test');
});
});
Любой совет?
ОБНОВИТЬ:
Использование by.model вместо by.input работает, но в книге, которую я читал, говорилось, что первый тоже должен работать... странно.